- teddit (https://teddit.net/about)
A free and open source alternative Reddit front-end focused on
privacy. Inspired by the Nitter project.
- Piped (https://github.com/TeamPiped/Piped)
An alternative privacy-friendly YouTube frontend which is efficient
by design.
- SimplyTranslate (https://simple-web.org/projects/simplytranslate.html)
We aim to provide fast and private translations to the user without
wasting much overhead for extensive styling or JavaScript
___
Also adds SimplyTranslate to the github pipeline, since they provide a
list of the service's public instances.
Closes#4
The FARSIDE_NO_ROUTER variable wasn't terribly useful after refactoring
the app to include the update routine internally (rather than available
externally as an elixir script).
Now the only supported environment variable is FARSIDE_TEST, which is
still useful for tests and quick validation of functionality.
The default url redirects to a session validation url first (w/ status
code 307). Disabling cookies by default allows a 200 code to be returned
for successful searches.
Although the current list of queries is only 2 elements ("time" and
"weather"), this allows searches for Whoogle and Searx to be slightly
more random, and potentially avoid any issues with their parent engine
rate limiting them.
The steps taken to commit the changes to services.json were overly complicated.
This simplifies the steps to just `exit 0` if there are no changes to commit.
* Create nightly update workflow for instances
A nightly GitHub Actions CI workflow has been added to fetch new
instances of supported services within Farside.
Currently only Searx is supported, but obviously others could be added
if there are similarly easy ways to fetch and filter instances
programmatically.
services.json has also been updated with the initial results of the
workflow script.
* Set headers for every HTTPoison request
This serves as a workaround for bot blocking via filtron.
* Expand filtering of searx instances
New filter enforces:
- No Cloudflare
- Good TLS config
- Good HTTP header config
- Vanilla instances or forks
- Instances with 100% search success
Rather than requiring a traditional crontab install, the app now
leverages quantum-core (link below) to schedule the instance update/sync
task every 5 minutes. Some updates as a result:
- The new job is scheduled at runtime in server.ex.
- The update.exs script was refactored to be compiled along with the
rest of the app as instances.ex.
- Scheduler and Server modules were added for creating and executing
the new update task
- All shell scripts were removed, as they are no longer needed
https://github.com/quantum-elixir/quantum-core
Should probably consider automating this at some point, but each instance
seemingly lists their public instances in a different format. Also don't really
want to mess with readme scraping. Idk, I'll think about it.
Setting the aforementioned env var skips creation of the app router,
which is useful for running update.exs when the main app is already
running (otherwise there's a port conflict).
Whoogle is now eligible for Farside links. I haven't decided how I'd
like this implemented yet though. My idea is actually to refactor part
of Whoogle to work a bit better with this new "instance hopping"
paradigm -- namely, I'd like the config settings to be easily turned
into query params and appended to a farside link when a user's preferred
instance is blocked.
Query params ("/watch?v=dQw4w9WgXcQ" for instance) would previously be
lost in Farside redirects. This now includes them if they were included
in the original request.