Commit Graph

85 Commits

Author SHA1 Message Date
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
Ben Busby
b0e6167733 Improved bad url arg filtering 2020-04-26 18:48:40 -06:00
Ben Busby
dd077954bf Fixed search results test
For datetime spans in time-filtered search results, anything less than 7
characters or more than 15 can be guaranteed to not be properly
formatted dates (either "mm dd yyyy" or "xx days/months/weeks ago")
2020-04-26 18:11:02 -06:00
Ben Busby
36ce44ae6a
Update README.md 2020-04-26 18:00:29 -06:00
Ben Busby
e42d754229 Merge branch 'master' of github.com:benbusby/shoogle 2020-04-25 11:34:20 -06:00
Ben Busby
3bc58b64be Small update to filter class
The image results page seems to have different formatting from non-image
results pages. Should probably revisit this at some point and try to
style the image results page to be more in line with other result types.
2020-04-25 11:32:43 -06:00
Ben Busby
fe0f17588a
Update README.md
Updated "Setup" section to clarify that docker setup is unnecessary if using Heroku quick deploy, and restructured to include local setup instructions as well.
2020-04-25 11:30:44 -06:00
Ben Busby
38c0f56322 Fixed gitignore, added required files 2020-04-24 19:03:22 -06:00
Ben Busby
1f6bfa092e Complete refactoring of opensearch
Refactored opensearch.xml to only exist as a template that is
served by a flask route, which is then populated with the
necessary url root.
2020-04-24 18:45:57 -06:00
Ben Busby
02bb5a3426 Merge branch 'master' of github.com:benbusby/shoogle 2020-04-24 18:11:51 -06:00
Ben Busby
9c7b4c1444 Fixed bad test assertion
Was previously checking for non-inclusive max number of days (i.e.
filtering by past month would return a failed test if the result was
from exactly 31 days ago)
2020-04-24 18:10:57 -06:00
Ben Busby
79f5c607eb
Update README.md
Added clarification for prerequisites if using the Heroku single-click deploy option
2020-04-24 18:06:28 -06:00
Ben Busby
ae94650aee
Updated README
Added single click deploy option for heroku
2020-04-24 18:02:28 -06:00
Ben Busby
4fb8ab6cac Added heroku.yml 2020-04-24 17:56:16 -06:00
Ben Busby
a678c2e89d Updated app.json to use container stack 2020-04-24 17:53:45 -06:00
Ben Busby
482c93b09a
Added missing web dyno formation 2020-04-24 17:43:30 -06:00
Ben Busby
831d111c55
Updated app.json
Added a postdeploy option to run the application after it finishes building
2020-04-24 17:35:02 -06:00
Ben Busby
1c5f57e692
Fixed travis CI
Previous commit relocated requirements.txt back to the root level of the repo, but Travis wasn't updated accordingly.
2020-04-24 17:27:21 -06:00
Ben Busby
525f7adf22 Merge branch 'master' of github.com:benbusby/shoogle 2020-04-24 17:25:06 -06:00
Ben Busby
e21341d6f4 Deployment related refactoring, fixes to Dockerfile
- Updated Dockerfile to include chmod of run script
- Added app.json for Heroku quick deploy
- Removed unused function var in js controller
- Moved requirements back to root of repo
- Added Codebeat report to readme
2020-04-24 17:23:08 -06:00
Ben Busby
a7005c012e Refactoring of user requests and routing
Curl requests and user agent related functionality was moved to its own
request class.

Routes was refactored to only include strictly routing related
functionality.

Filter class was cleaned up (had routing/request related logic in here,
which didn't make sense)
2020-04-23 20:59:43 -06:00
Ben Busby
6f80c35fd2
Fixed missing releases link in readme 2020-04-19 15:47:27 -06:00
Ben Busby
1713bcbf23
Update README.md 2020-04-19 15:43:44 -06:00
Ben Busby
31b9e19af7 Fixed main banner in readme 2020-04-19 15:28:40 -06:00
Ben Busby
67e3c788c7 Updated readme, added screenshots 2020-04-19 15:23:39 -06:00
Ben Busby
a7786ea904 Update issue templates 2020-04-17 13:36:45 -06:00
Ben Busby
6a150092a2 Fixed config bug in filter, updated run script to work on mac os 2020-04-16 18:50:31 -06:00
Ben Busby
2631335dbf Updated README 2020-04-16 18:37:24 -06:00
Ben Busby
bd773ec5ff Small update to js config request 2020-04-16 18:12:30 -06:00
Ben Busby
e72ccc4988 Small change to mobile styling 2020-04-16 10:10:18 -06:00
Ben Busby
024552f2df Minor refactor of filter class, updated tests, fixed html/css, added ua to config 2020-04-16 10:01:02 -06:00
Ben Busby
b5351c8502
Update README.md 2020-04-15 18:06:59 -06:00
Ben Busby
0d17cc8ef6 Modified result length test 2020-04-15 17:54:38 -06:00
Ben Busby
ab59682cad Small var fix in testing search results 2020-04-15 17:48:49 -06:00
Ben Busby
22381d6991 Fixed missing dateutil req 2020-04-15 17:46:15 -06:00
Ben Busby
a76cf87c26 Fixed missing gnutls in travis ci 2020-04-15 17:43:57 -06:00
Ben Busby
b5b6e64177 Added testing and ci build, refactored filter class, refactored project structure 2020-04-15 17:41:53 -06:00
Ben Busby
2600f494b7 Merge branch 'master' of github.com:benbusby/shoogle 2020-04-12 14:26:38 -06:00