Client Configuration
Class Diagram
Settings
Note
Javadoc has sadly not recognised the class-level Lombok getter for all fields, but they do exist.
Preferred client kind
There are two options to choose from:
HTTP_CLIENT:
A resource-efficient client that does not require a browser but instead makes direct HTTP requests. Especially useful for low-power devices like a Raspberry Pi.HEADLESS_BROWSER:
A browser like Firefox but without a graphical user interface. Very resource-intensive and should only be used if the hardware is capable of running a headless browser. NOT recommended for use on devices like a Raspberry Pi.
| Type | String |
| Must be one of |
|
| JSON key | client-kind |
| Default | HTTP_CLIENT |
User agent
By default, Friedolyn tells the university its true identity. If the user would like to be more inconspicuous, they may select a fake user agent. Then, Friedolyn would seem like a regular web browser.
All values other than the pre-defined ones will be used verbatim.
| Type | String |
| JSON key | user-agent |
| Default | Friedolyn.DEFAULT |
Pre-defined values
The pre-defined user-agents consist of a client (i.e. the software making the request) and a platform (i.e. the operating system the client is running on). Here’s an overview of the platforms that each client supports:
Friedolyn
Friedolyn.DEFAULT(no platform specified)Friedolyn.LinuxFriedolyn.ZorinFriedolyn.UbuntuFriedolyn.WindowsFriedolyn.MacOS
Mozilla Firefox
Mozilla Firefox.LinuxMozilla Firefox.UbuntuMozilla Firefox.FedoraMozilla Firefox.AndroidMozilla Firefox.WindowsMozilla Firefox.MacOSMozilla Firefox.iPhoneMozilla Firefox.iPad
Gnome Web
Gnome Web.Ubuntu
Apple Safari
Apple Safari.MacOSApple Safari.iPhoneApple Safari.iPad
Google Chrome
Google Chrome.LinuxGoogle Chrome.AndroidGoogle Chrome.WindowsGoogle Chrome.MacOSGoogle Chrome.iPhoneGoogle Chrome.iPad
Vivaldi
Vivaldi.LinuxVivaldi.WindowsVivaldi.MacOS
Microsoft Edge
Microsoft Edge.AndroidMicrosoft Edge.WindowsMicrosoft Edge.MacOSMicrosoft Edge.iPhoneMicrosoft Edge.Xbox
Do not track
The Do Not Track header indicates whether the user would prefer privacy rather than personalised content.
| Type | boolean |
| JSON key | do-not-track |
| Default | false |
Global Privacy Control
The Global Privacy Control header indicates whether the user consents to a website or service selling or sharing their personal information with third parties.
| Type | boolean |
| JSON key | global-privacy-control |
| Default | false |