Commit Graph

122 Commits

Author SHA1 Message Date
Ben Busby
87f0a8d496
Added volume mounted config to Dockerfile (#39) 2020-05-13 18:27:04 -06:00
Jake Howard
ab47153141
Use slim version of docker container (#34)
* Use slim version of docker container

This massively reduces the size of the final container (330mb -> 60mb)

* Install libcurl and libssl explicitly in container

They appear to be missing from `-slim` variant containers

Co-authored-by: Ben Busby <benbusby@pm.me>

Co-authored-by: Ben Busby <benbusby@pm.me>
2020-05-13 12:56:35 -06:00
Ben Busby
f4bd3df2bb
Added option to search only via GET request (#36)
This addresses #18, which brought up the issue of searching with Whoogle
with the search instance set to always use a specific container in
Firefox Container Tabs.

Could also be useful if you want to share your search results or
something, I guess. Though nobody likes when people do that.
2020-05-13 00:19:51 -06:00
Whitney B
db7cf7381b
Fixed missing host parameter bug. (#38)
Co-authored-by: Whitney Burian <whitneyburian@gmail.com>
2020-05-12 23:32:15 -06:00
Ben Busby
a11ceb0a57
Feature: language config (#27)
* Added language configuration support

Main page now has a dropdown for selecting preferred language of
results.

Refactored config to be its own model with language constants.

* Added more language support

Interface language is now updated using the "hl" arg

Fixed chinese traditional and simplified values

Updated decoding of characters to gb2312

* Updated to use conditional decoding dependent on language

* Updated filter to not rely on valid config to work properly
2020-05-12 17:15:53 -06:00
Jake Howard
f700ed88e7
Swap out Flask's default web server for Waitress (#32)
* Ignore venv when building docker file

* Remove reference to 8888 port

It wasn't really used anywhere, and setting it to 5000 everywhere removes ambiguity, and makes things easier to track and reason about

* Use waitress rather than Flask's built in web server

It's not production grade

* Actually add waitress to requirements

Woops!
2020-05-12 17:14:55 -06:00
Jake Howard
14a41a89b6
No need to chmod whoogle-search script inside container (#33) 2020-05-12 15:32:16 -06:00
Ben Busby
f7e69bded1
Minor punctuation fix 2020-05-12 00:51:00 -06:00
Ben Busby
b06f4319f8 Merge branch 'master' of github.com:benbusby/shoogle 2020-05-12 00:49:54 -06:00
Ben Busby
445019d204 Fixed RAM usage bug
Pushing straight to master since this is an extremely simple fix, with
a pretty large performance benefit.

The Phyme library used for generating a User Agent rhyme was consuming
an absolute unit of memory. Now that it's removed, it's using about 10x
less memory, at the cost of User Agents being not as funny anymore.
2020-05-12 00:45:56 -06:00
Ben Busby
dcb2517a6c Update issue templates
Removed myself as the auto assignee of all bug reports
2020-05-11 19:12:26 -06:00
ygsk10
f36a63e3f0
Update README.md (#22)
* Update README.md

* Update README.md
2020-05-11 19:08:35 -06:00
Ben Busby
6e1af0aa9e Update issue templates
Updated bug report description, added feature request template
2020-05-11 11:58:12 -06:00
Ben Busby
1798b6094d
Merge pull request #16 from Kombustor/patch-1
Add autofocus to input field
2020-05-10 14:09:42 -06:00
Ben Busby
122a67d6ab Added docker-compose.yml 2020-05-10 13:59:37 -06:00
Ben Busby
7ccad2799e Added config option to address instance behind reverse proxy
Config options now allow setting a "root url", which defaults to the
request url root. Saving a new url in this field will allow for proper
redirects and usage of the opensearch element.

Also provides a possible solution for #17, where the default flask redirect method redirects to
http instead of https.
2020-05-10 13:27:02 -06:00
Fabian Schliski
743caf6cc7
Updating autofocus value 2020-05-10 20:17:32 +02:00
Ben Busby
2fc48ced6a
Merge pull request #10 from DjLogozzo/master
Added Firefox Android instructions for primary search settings
2020-05-10 11:11:01 -06:00
Ben Busby
1795695cc6
Merge pull request #9 from mendel5/patch-1
fix spelling: Whoole --> Whoogle
2020-05-10 11:04:24 -06:00
Ben Busby
90995d79e4
Merge pull request #13 from Alpha200/improved-dockerfile
Improved Dockerfile
2020-05-10 11:03:11 -06:00
Fabian Schliski
0fc5fa9d99
Add autofocus to input field
Supported in all major browsers, allows the user to immediately start typing after loading the page.
2020-05-10 16:51:42 +02:00
Daniel Sendzik
2daca9a352
Improved Dockerfile 2020-05-10 14:00:22 +02:00
Dee-Jay Logozzo
05f6ad2815
Added Firefox Android instructions for setting whoogle as primary search engine 2020-05-10 20:19:39 +10:00
mendel5
3a4a8ce95b
fix spelling: Whoole --> Whoogle 2020-05-10 10:53:19 +02:00
Ben Busby
df6c36cd24
Update app.json
Fixed image and repo link
2020-05-09 18:38:19 -06:00
Ben Busby
3d38b80833
Small update to readme
Clarified the heroku app naming section
2020-05-08 13:19:51 -06:00
Ben Busby
1ae946eab7
Update README.md 2020-05-08 13:15:17 -06:00
Ben Busby
68da3cd4cd Updated readme with pip instructions, fixed travis badge 2020-05-08 10:38:01 -06:00
Ben Busby
d1a268551e
Update README.md 2020-05-06 19:08:25 -06:00
Ben Busby
130ac4532e Refactored handling of user config
Now implemented as a flask global variable reads from the same json file
as before, but doesn't crash if it does not find an existing file.

Removed user config creation from run script
2020-05-06 18:39:12 -06:00
Ben Busby
d316fd77c6 Updated setup and routes for pipx compatibility 2020-05-06 18:13:02 -06:00
Ben Busby
9ca74397b4 Adding setup for pip packaging 2020-05-06 17:24:18 -06:00
Ben Busby
d01f56ea03 Removed referrer from links, refacored routes
Added <meta name="referrer" content="no-referrer"> to all whoogle
templates

Refactored search route to use conditionally use either request.args or
request.form, depending on rest call (get vs post respectively)
2020-05-05 18:28:43 -06:00
Ben Busby
ab317fa0d0
Update README.md
Replaced img header with regular text header
2020-05-04 18:06:38 -06:00
Ben Busby
29a13d0e6e
Update README.md
Fixed separator formatting
2020-05-04 18:03:11 -06:00
Ben Busby
708769f682 Minor styling refactor, updated app name 2020-05-04 18:00:43 -06:00
Ben Busby
0300eab6df Updated formatting and setup instructions
Switched encoding from utf-8 to unicode-escape in an effort to support multiple
languages besides English.

Updated image results page formatting to fix bad image links (added TODO
for adding full res image link for each image result).

Updated README to include libcurl and libssl install instructions for
manual setup.
2020-05-03 19:32:47 -06:00
Ben Busby
39c475af21 Using urlencode "doseq" option for url args 2020-04-29 20:31:03 -06:00
Ben Busby
3e404cb524 Restructured valid params checking, added empty query redirect 2020-04-29 18:53:58 -06:00
Ben Busby
c30f21f950 Minor conditional fix in filter 2020-04-29 14:46:00 -06:00
Ben Busby
b83f14be26 Fixed image href filter
Needed to be checking against img attrs, not just the img object itself
2020-04-29 11:18:07 -06:00
Ben Busby
6d38abd1b4 Removed debug from opensearch template 2020-04-29 10:12:49 -06:00
Ben Busby
dcd93d4869 Fixed filter params, updated search button text 2020-04-29 10:03:34 -06:00
Ben Busby
5fe308956b Cleaned up filter class, updated js config tool 2020-04-29 09:46:18 -06:00
Ben Busby
0a3da5cea4 Updated js controller and config api route
Controller was refactored to be a bit less monolithic.

Config route was updated to accept an html form data POST rather than
just a json object.
2020-04-28 20:50:12 -06:00
Ben Busby
1cbe394e6f Updated tests, fixed a few bugs
Added opensearch routes test and individual tests for searching via GET
and POST separately.

Fixed incorrect assignment in gen_query.
2020-04-28 18:59:33 -06:00
Ben Busby
0c0ebb8917 Added POST search, encrypted query strings, refactoring
The implementation of POST search support comes with a few benefits. The
most apparent is the avoidance of search queries appearing in web server
logs -- instead of the prior GET approach (i.e.
/search?q=my+search+query), using POST requests with the query stored in
the request body creates logs that simply appear as "/search".

Since a lot of relative links are generated in the results page, I came
up with a way to generate a unique key at run time that is used to
encrypt any query strings before sending to the user. This benefits both
regular text queries as well as fetching of image links and means that
web logs will only show an encrypted string where a link or query
string might slip through.

Unfortunately, GET search requests still need to be supported, as it
doesn't seem that Firefox (on iOS) supports loading search engines by
their opensearch.xml file, but instead relies on manual entry of a
search query string. Once this is updated, I'll probably remove GET
request search support.
2020-04-28 18:19:34 -06:00
Ben Busby
74b0d30306 Merge branch 'master' of github.com:benbusby/shoogle 2020-04-27 20:23:30 -06:00
Ben Busby
4180aedd87 Added image proxying, refactored filter class
Images were previously directly fetched from google search results,
which was a potential privacy hazard. All image sources are now modified
to be passed through shoogle's routing first, which will then fetch raw
image data and pass it through to the user.

Filter class was refactored to split the primary clean method into
smaller, more manageable submethods.
2020-04-27 20:21:36 -06:00
Ben Busby
5d6256662f
Update README.md
Fixed typo in location based searching
2020-04-27 11:12:40 -06:00