Commit Graph

161 Commits (64af72abb503023b4ca7e45f65d994d166f3ac3c)

Author SHA1 Message Date
Ben Busby 64af72abb5 Moved custom conf files to their own directory 2020-06-02 14:38:29 -06:00
Ben Busby b6fb4723f9
Project refactor (#85)
* Major refactor of requests and session management

- Switches from pycurl to requests library
  - Allows for less janky decoding, especially with non-latin character
  sets
- Adds session level management of user configs
  - Allows for each session to set its own config (people are probably
  going to complain about this, though not sure if it'll be the same
  number of people who are upset that their friends/family have to share
  their config)
- Updates key gen/regen to more aggressively swap out keys after each
request

* Added ability to save/load configs by name

- New PUT method for config allows changing config with specified name
- New methods in js controller to handle loading/saving of configs

* Result formatting and removal of unused elements

- Fixed question section formatting from results page (added appropriate
padding and made questions styled as italic)
- Removed user agent display from main config settings

* Minor change to button label

* Fixed issue with "de-pickling" of flask session

Having a gitignore-everything ("*") file within a flask session folder seems to cause a
weird bug where the state of the app becomes unusable from continuously
trying to prune files listed in the gitignore (and it can't prune '*').

* Switched to pickling saved configs

* Updated ad/sponsored content filter and conf naming

Configs are now named with a .conf extension to allow for easier manual
cleanup/modification of named config files

Sponsored content now removed by basic string matching of span content

* Version bump to 0.2.0

* Fixed request.send return style
2020-06-02 12:54:47 -06:00
Ben Busby 71ba00785f Quick improvement to ad removal 2020-05-29 13:21:53 -06:00
Ben Busby cb18bc6ccc Updated autocomplete styling
Added dark theme specific stylesheet to use if dark mode is active
2020-05-26 10:58:37 -06:00
Ben Busby 78939e7fb4 Reworked google url routing 2020-05-26 10:47:40 -06:00
Ben Busby 98d639883c Fixing styling/url/safe mode inconsistencies 2020-05-26 10:39:19 -06:00
Ben Busby 77c4920e83
Update README.md 2020-05-25 10:58:57 -06:00
Ben Busby 9212f9921a Fixed #76
Added enter key submit on results page

Added results type carryover for subsequent searches on results page

Removed redundant header on image search results
2020-05-25 10:53:15 -06:00
Ben Busby d1f38cf924 Fixed styling of footer in dark mode 2020-05-25 10:33:24 -06:00
Ben Busby 21012f5265
Feature: autocomplete/search suggestions (#72)
Basic autocomplete/search suggestion functionality added

* Adds new GET and POST routes for '/autocomplete' that accept a string query and returns an array of suggestions

* Adds new autoscript.js file for handling queries on the main page and results view

* Updated requests class to include autocomplete method

* Updated opensearch template to handle search suggestions

* Added header template to allow for autocomplete on results view

* Updated readme to mention autocomplete feature
2020-05-24 14:03:11 -06:00
Ben Busby 3dbe51e9e7 Removing google's filter card from results 2020-05-24 12:53:21 -06:00
Ben Busby 09c53b52af
Feature: country and safe search config options (#71)
* Added country and safe search config options

* Updated handling of parser error in results test

* Improved handling of default country

* Added 1px empty gif fallback as a replacement for images that fail to load
2020-05-23 14:27:23 -06:00
Ben Busby c9f99b3eb6
Fixed docker hub instructions 2020-05-22 16:33:06 -06:00
Ben Busby 699aa4f2e7 Bumped version to 0.1.4 2020-05-22 16:08:47 -06:00
Ben Busby 2c01e1d6bc Fixed PyPi deployment
Added requirements to MANIFEST, removed outdated need for
"whoogle-search" executable
2020-05-22 15:52:17 -06:00
Ben Busby b131f47641 Bumped version to v0.1.3
(forgot to update pip package version)
2020-05-22 10:45:49 -06:00
Ben Busby f1e17d8119
Bumped version to v0.1.2 2020-05-22 10:38:58 -06:00
Ben Busby ddf46e3bc0 Added travis ci deploy to pypi 2020-05-21 17:03:44 -06:00
Ben Busby 516bc765b0
Update README.md
Fixed docker badge link
2020-05-20 12:55:23 -06:00
Ben Busby d2b60544c5
Update README.md
Added instructions for setting default search engine while using a reverse proxy
2020-05-20 11:11:07 -06:00
Ben Busby b15368ac28 Updated recent results test w/ +5 day tolerance 2020-05-20 11:07:01 -06:00
Ben Busby c51f186419 Added version footer, minor PEP 8 refactoring 2020-05-20 11:02:30 -06:00
Ben Busby 38b7b19e2a
Added basic authentication (#51)
Username/password can be set either as Dockerfile build arguments or
passed into the run script as "--userpass <username:password>"
2020-05-18 10:30:32 -06:00
Paul Rothrock 0e39b8f97b
Added "I'm feeling lucky" function (#46)
* Putting '! ' at the beginning of the query now redirects to the first search result

Signed-off-by: Paul Rothrock <paul@movetoiceland.com>

* Moved get_first_url outside of filter class

Signed-off-by: Paul Rothrock <paul@movetoiceland.com>
2020-05-18 10:28:23 -06:00
Ben Busby 56bf976ecd Added question template 2020-05-18 10:17:21 -06:00
Ben Busby a4382d59f6
Updated redirect code used in https redirects
See https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections

301 redirections do not keep the request method intact, and can occasionally be changed from POST to GET

308 redirections always keep the request method, which is necessary for all POST search requests
2020-05-16 09:31:07 -06:00
Ben Busby 601923e074
Update Dockerfile
Fixed mkdir call to not error if config dir already exists
2020-05-16 09:11:00 -06:00
Ben Busby c341848a74 Update issue templates 2020-05-15 18:29:21 -06:00
Ben Busby feae52ac1d Update issue templates 2020-05-15 18:25:08 -06:00
Ben Busby ea37044d67
Minor change to systemd setup
I thought this was addressed during the pull request, but I guess not?
2020-05-15 17:05:46 -06:00
thomcatdotrocks 46b6c66312
Added instructions for running with systemd (#45)
Co-authored-by: ThomCat <me@thomcat.rocks>
2020-05-15 17:04:01 -06:00
Ben Busby 11fa44eec1 Minor refactoring for clarification
Executable renamed to "run" to avoid confusion with pip installed script

Updated heroku deploy button to use the heroku-app branch, which by
default enforces HTTPS

Added instructions for enforcing HTTPS on various deployment options,
with note about how this isn't a required task.

Updated setup.py description to use improved app description
2020-05-15 16:47:39 -06:00
Christopher Patton 7ec20ecf46
Allow bind address override (#53) 2020-05-15 16:36:01 -06:00
Ben Busby b4165f9957 Minor improvement to https enforcement 2020-05-15 16:29:22 -06:00
Ben Busby 3123789584
Added config option for opening links in new tab (#49) 2020-05-15 16:10:31 -06:00
Paul Rothrock 0e9bbc737d
Add Alfred Instructions (#52) 2020-05-15 16:01:26 -06:00
Ben Busby 1ed6178e9a
Feature: https only -- adds option to enforce https on running instances (#48)
* Adding HTTPS enforcement

Command line runs of Whoogle Search through pip/pipx/etc will need the
`--https-only` flag appended to the run command.

Docker runs require the `use_https` build arg applied.

* Update README.md

Moved https-only note to top of docker run command, updated pip runner help output

* Dockerfile: removed HTTPS enforcement, updated PORT setting

Dockerfile no longer enforces an HTTPS connection, but still allows for
setting via a build arg. The Flask server port is now configurable as a
build arg as well, by setting a port number to "whoogle_port"

* Fixed incorrect port assignment
2020-05-15 15:44:50 -06:00
Ben Busby afd5b9aa83 Minor fix to dark mode on img results 2020-05-15 14:17:16 -06:00
Ben Busby e3d002f6c1 Updated readme with more docker instructions 2020-05-15 10:07:11 -06:00
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