Commit Graph

230 Commits

Author SHA1 Message Date
Ben Busby
ea418e801a Merge branch 'develop' of https://github.com/benbusby/whoogle-search into nord_dark_theme 2020-11-10 19:25:11 -05:00
Ben Busby
a97e837b09 Default to disabled environment vars, update readme
Environment variables should by default be disabled, since they are
optional and need further configuration by the user before enabling.

Readme was updated to reflect this approach, as well as moving the
documentation for the variables a bit lower and properly linking to them
in other areas of the readme.
2020-11-03 17:28:43 -05:00
Paolo Basso
4447cb682a
Document environment variables (#143)
Adds documentation for all available envirnrment variables to the README

Co-authored-by: Ben Busby <benbusby@protonmail.com>
2020-11-03 16:28:42 -05:00
Ben Busby
f88d1fbb66 Fix main page visibility for noscript users
The body tag of the home page was previously hidden until the page was
finished loading to prevent a flash of unstyled content, but this broke
functionality for users who disallow javascript. This adds in a new
noscript tag to manually enable visibility of the body element, as well
as automatically displaying the config section (since its visibility is
also typically handled by javascript).
2020-11-03 10:41:29 -05:00
bugbounce
1148a7fb8d
Use relative links instead of absolute (#139)
* Use relative links instead of absolute

This allows for hosting under a subpath. For example if you want to host
whoogle at example.com/whoogle, it should work better with a reverse proxy.

* Use relative link for opensearch.xml
2020-10-29 11:09:31 -04:00
Ben Busby
933ce7e068 Handle FF sending bad search suggestion param
Occasionally, Firefox will send the search suggestion
string to the server without a mimetype, resulting in the suggestion
only appearing in Flask's `request.data` field. This field is typically
not used for parsing arguments, as the documentation states:

Contains the incoming request data as string in case it came with a
mimetype Flask does not handle.

This fix captures the bytes object sent to the server and parses it into
a normal query to be used in forming suggestions.
2020-10-28 23:02:41 -04:00
Ben Busby
7a61220aa5 Update Dockerfile tor service init, refactor rc/ -> misc/
The tor service is now started by calling a script which runs tor
according to the current container user. If the user is root, the script
will begin the tor service as normal. Otherwise, it runs tor as the
current user. This primarily is meant to address the issue with Heroku
builds (which don't have a root user) not being able to start tor as a
service.

Also refactored the rc/ dir to misc/ (with a tor/ subdir) since that
makes more sense.
2020-10-28 22:18:29 -04:00
Ben Busby
0ef098069e
Add tor and http/socks proxy support (#137)
* Add tor and http/socks proxy support

Allows users to enable/disable tor from the config menu, which will
forward all requests through Tor.

Also adds support for setting environment variables for alternative
proxy support. Setting the following variables will forward requests
through the proxy:
    - WHOOGLE_PROXY_USER (optional)
    - WHOOGLE_PROXY_PASS (optional)
    - WHOOGLE_PROXY_TYPE (required)
      - Can be "http", "socks4", or "socks5"
    - WHOOGLE_PROXY_LOC  (required)
      - Format: "<ip address>:<port>"

See #30

* Refactor acquire_tor_conn -> acquire_tor_identity

Also updated travis CI to set up tor

* Add check for Tor socket on init, improve Tor error handling

Initializing the app sends a heartbeat request to Tor to check for
availability, and updates the home page config options accordingly. This
heartbeat is sent on every request, to ensure Tor support can be
reconfigured without restarting the entire app.

If Tor support is enabled, and a subsequent request fails, then a new
TorError exception is raised, and the Tor feature is disabled until a
valid connection is restored.

The max attempts has been updated to 10, since 5 seemed a bit too low
for how quickly the attempts go by.

* Change send_tor_signal arg type, update function doc

send_tor_signal now accepts a stem.Signal arg (a bit cleaner tbh). Also
added the doc string for the "disable" attribute in TorError.

* Fix tor identity logic in Request.send

* Update proxy init, change proxyloc var name

Proxy is now only initialized if both type and location are specified,
as neither have a default fallback and both are required. I suppose the
type could fall back to http, but seems safer this way.

Also refactored proxyurl -> proxyloc for the runtime args in order to
match the Dockerfile args.

* Add tor/proxy support for Docker builds, fix opensearch/init

The Dockerfile is now updated to include support for Tor configuration,
with a working torrc file included in the repo.

An issue with opensearch was fixed as well, which was uncovered during
testing and was simple enough to fix here. Likewise, DDG bang gen was
updated to only ever happen if the file didn't exist previously, as
testing with the file being regenerated every time was tedious.

* Add missing "@" for socks proxy requests
2020-10-28 20:47:42 -04:00
dependabot[bot]
83433432ec
Bump cryptography from 2.8 to 3.2 (#138)
Bumps [cryptography](https://github.com/pyca/cryptography) from 2.8 to 3.2.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/2.8...3.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-28 10:57:47 -04:00
Alexandar Mechev
a6728a415a
Merge branch 'develop' into nord_dark_theme 2020-10-26 17:20:44 +01:00
Ben Busby
f3bb1e22b4 Fix improper header styling, remove shopping tab links
The header template was using Google's classes for the "Whoogle" logo,
which meant keeping up with their list of colors used in the logo. The
template was updated to only ever use the Whoogle logo color.
Accordingly, the logo specific styling in filter.py was removed, since
it is no longer needed.

Also removes all links to the shopping tab, as it seems that the
majority of the links to items are Google specific links (usually
google.com/aclk links without any discernible param for determining the
true location for the link). The shopping page should be addressed
separately with unique filtering/formatting. Further tracking of this
task will be followed in #136.
2020-10-25 13:52:30 -04:00
Alexandar Mechev
30943b9146
Merge branch 'develop' into nord_dark_theme 2020-10-23 18:12:53 +02:00
Alexandar Mechev
1047dc1ba9
removes duplicate CSS 2020-10-23 18:12:05 +02:00
Alexandar Mechev
95f12be5e6
Apply suggestions from code review
Co-authored-by: Ben Busby <benbusby@pm.me>
2020-10-23 18:10:15 +02:00
Ben Busby
58a7868d25
Update README.md
Added DDG-style bang searches to feature list in the readme, removed Gitter chat badge
2020-10-21 13:16:32 -04:00
Alexandar Mechev
f606bdfe47
small fix 2020-10-18 16:46:32 +02:00
Alexandar Mechev
ec4da3565f
Adds solarized theme (+dark)
themes footer in index page
2020-10-18 16:43:36 +02:00
Alexandar Mechev
72a006ccfb
More tweaks to css..
delegating search-bar style to .css
2020-10-18 12:39:01 +02:00
Alexandar Mechev
c0bf85902f
Merge branch 'develop' into nord_dark_theme 2020-10-17 22:48:03 +02:00
Alexandar Mechev
beb76300ca
more retheming, including footers 2020-10-17 14:57:06 +02:00
Alexandar Mechev
0e6c020975
adds almsot working dark mode 2020-10-17 13:35:51 +02:00
Alexandar Mechev
eb809a1608
working nord/whoogle light mode 2020-10-14 18:53:51 +02:00
Alexandar Mechev
ab0547ad13
single theme file 2020-10-14 18:47:27 +02:00
Alexandar Mechev
a8921a736e
change theme name 2020-10-14 18:46:31 +02:00
Ben Busby
57ca6e99ba
Added ddg-style !bang-operators #96
Adds support for ~12K ddg-style !bang-operators -- for example "!gh <query>" to search GitHub, "!w <query>" to search Wikipedia, etc.

Bang operators are loosely supported in the search suggestion API, but should be improved upon eventually to prioritize more popular bangs. At the moment, most bang suggestions are obscure results that likely aren't being used by the vast majority of users. This is simply due to the fact that no intelligent filtering occurs between matching the input text and the results, it's simply a string comparison against the available bang operator keys.

The full list of bang operators is generated on initialization of the app, under a new and separate directory (`app/static/bangs/`).

Authored by: @marvinborner 
Co-authored by: @benbusby
2020-10-13 10:05:37 -04:00
Ben Busby
ae05e8ff8b Finished basic implementation of DDG bang feature
Initialization of the app now includes generation of a ddg-bang json
file, which is used for all bang style searches afterwards.

Also added search suggestion handling for bang json lookup. Queries
beginning with "!" now reference the bang json file to pull all keys
that match.

Updated test suite to include basic tests for bang functionality.

Updated gitignore to exclude bang subdir.
2020-10-10 15:55:14 -04:00
Ben Busby
2126742b76
Merge branch 'develop' into develop 2020-10-07 18:38:36 -04:00
Alexandar Mechev
de34ab9da2
un-autoformat display.html 2020-10-06 10:37:40 +02:00
Alexandar Mechev
5e2ed5298f
un-autoformat index.html 2020-10-06 10:35:54 +02:00
Alexandar Mechev
12e5b66aa2
delegates the get_theme_file to its own function 2020-10-06 10:23:43 +02:00
Alexandar Mechev
9594fa1eee
adds theme support for reskinning cards
the theme.css file can include a .reskin selector
the filter.py file will parse the css file and replace the card color accordingly
2020-10-06 10:09:49 +02:00
Alexandar Mechev
b6655fa02a
update span color nord-light 2020-10-06 09:04:37 +02:00
Alexandar Mechev
e85bbf1bdd
adds nord-light theme
based on polar:
https://github.com/mtyn/polar
2020-10-05 17:46:51 +02:00
Alexandar Mechev
4d55a56189
adds theme to routes and Index.html 2020-10-05 17:20:06 +02:00
Alexandar Mechev
fbd14c0a55
darkness imprisoning me
all that I see, absolute horror
2020-10-05 16:30:47 +02:00
Alexandar Mechev
6287d2db50
adds whoogle-dark to themes 2020-10-05 16:00:48 +02:00
Alexandar Mechev
2f3f5ef035
can choose themes in config 2020-10-05 16:00:33 +02:00
Alexandar Mechev
6a9e53b121
add theme nord_search_dark, themes folder 2020-10-05 15:38:23 +02:00
Ben Busby
b01b6d8c69 Minor change to wording of language config 2020-10-04 14:11:44 -04:00
curlpipe
558e3e1514
Fixed annoying browser autocomplete (#128) 2020-10-04 13:53:37 -04:00
Ben Busby
dfb1e81fa1 Added search input auto focus, updated README
The javascript controller has been updated to include a call to focus
the cursor on the search field. This previously had only been seen on
Firefox, and was assumed to be a weird FF-specific bug. Adding in a
timeout to allow elements to finish loading allows the field to be
focused as expected.

Also updated the README to include clarification for IP address
tracking.
2020-09-30 10:26:27 -04:00
Ben Busby
1f07e4e235 Update issue template
Removed the section concerning which parts of the project would need modification, since it's not always fair to expect someone to know that beforehand.
2020-09-30 10:13:55 -04:00
Ben Busby
9a03b4111d Clarified country filter, updated invidious result URL (closes #123)
Improves clarity of the meaning behind the "Country" filter -- Google
seemingly uses this value to only return results that are hosted in a
particular country, as evidenced in the search differences highlighted
in #123. It now mentions that the results are filtered by website
hosting location.

Also, now that invidio.us is shut down, the fallback URL (invidiou.site)
is now used instead.
2020-09-17 18:59:37 -04:00
Ben Busby
9afe5f81bd
Updated dark theme (#121)
* Implemented new dark theme

Now uses a dedicated css file for all dark theme color changes, rather
than replacing color codes directly.

Color theme is from discussion in #60.

* Minor link color update
2020-09-14 15:29:58 -04:00
Ben Busby
a1894975af Merge remote-tracking branch 'origin/master' into develop 2020-09-07 07:43:43 -06:00
Dee-Jay Logozzo
481c5d1798
Added instructions for Android Firefox >=79.0.0 (#119)
* Added instructions for Android Firefox >=79.0.0

Long pressing on the search bar and selecting "Add search engine" no longer works as of Android Firefox 79.0.0

* Update README.md

* Corrected search strings to use backticks
2020-09-07 07:42:11 -06:00
Chad Smith
6ba5e8f165
fix pipx run command (#118)
Add the required `--spec` argument
2020-08-20 13:40:34 -06:00
Ben Busby
e471b012a0 Updated opensearch template
Reconfigured template to only use method parameter if set to search via
POST request (which is the default).

Apparently Chrome/Chromium based browsers don't like non-GET request
searches, and specifying a method caused Chrome to reject the template
altogether.
2020-08-15 14:03:26 -06:00
Ben Busby
0c0a01b83f Minor opensearch route and description updates
Bumped version to 0.2.1 for next release

Updated image in opensearch template to use base64 image

Updated opensearch route to serve file as attachment
2020-08-15 13:02:17 -06:00
Ben Busby
b2ecd8dc78 Updated search suggestion behavior (closes #115)
Arrow key navigation through search suggestions now populates the input
field with text content from the active selection. Navigating "down"
past the end of the suggestions list returns the active cursor to position 0,
while navigating "up" before the list of suggestions restores the
original search query and removes the active highlight from element 0.
2020-08-15 11:58:16 -06:00