Skip to content

Commit

Permalink
Version 1.2.2
Browse files Browse the repository at this point in the history
- [new] Individual on/off setting for each search engine and torrent site
- [new] YTS Highlights for latest releases, highest rated or most downloaded movies
- [new] EZTV Highlights for latest TV Show episode releases
- [new] Goosle-cron.php file for if you want to clear the file cache in the background
- [change] l33tx torrents disabled by default - They use Cloudflare now, preventing the crawler from working reliably
- [change] Ecosia search disabled by default - They use some kind of bot detector now, preventing the crawler from working once caught
- [change] Now uses an ABSPATH global for file inclusions and paths
- [change] More discrete TV Show and Movie result detection in text search
- [tweak] Filter for eztv search, only include eztv if the search term starts with 'tt' (case insensitive)
- [tweak] Better ecosia link formatting to (hopefully) not get blocked by their bot detector
- [tweak] cURL headers to be (even) more browser-like
- [fix] Variable $url sometimes empty for certain torrent results
- [fix] Blocked category filter for YTS results now actually works
  • Loading branch information
adegans committed Feb 16, 2024
1 parent 426daab commit f7971ae
Show file tree
Hide file tree
Showing 21 changed files with 558 additions and 232 deletions.
61 changes: 43 additions & 18 deletions assets/css/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@
* liability that might arise from its use.
------------------------------------------------------------------------------------ */

html { font-size: 16px; }
body { position: relative; margin: 0; padding: 0; font-family: Arial, Helvetica, sans-serif; color: #222; background-color: #ffffff; line-height: 1.2; }
div { margin: 0; padding: 0; border: 0; font-size: 100%; vertical-align: baseline; }
div { margin: 0; padding: 0; border: 0; vertical-align: baseline; }
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; }
h2, h3, h4, h5, h6 { font-weight: normal; }
h2, h3, h4, h5, h6, p, ul, ol, blockquote { margin: 0; padding-top: .5em; padding-bottom: .5em; }
Expand All @@ -34,34 +35,34 @@ input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; -
/* Main page */
body.main { background-color: #1f242b; color: #f0f6fc; }
.search-box-main, .password-generator { text-align: center; margin-top: 10%; }
.search-box-main h1 { font-size: 70px; }
.search-box-main .search, .password-generator .password { padding: 10px 20px; width: 600px; color: #f0f6fc; background-color: #333333; font-size: 32px; font-family: sans-serif; border: 1px solid #3C4043; border-radius: 10px; }
.search-box-main h1 { font-size: 4rem; }
.search-box-main .search, .password-generator .password { padding: 10px 20px; width: 600px; color: #f0f6fc; background-color: #333333; font-size: 2rem; font-family: sans-serif; border: 1px solid #3C4043; border-radius: 10px; }
.search-box-main .search[type="search"]::-webkit-search-cancel-button { background-size: 28px 28px; height: 28px; width: 28px; background-color: #f0f6fc; }
.search-box-buttons button { margin: 30px 20px 10px 20px; padding: 13px 10px 13px 10px; min-width: 130px; color: #f0f6fc; background-color: #333333; font-size: 14px; border: 1px solid #3C4043; border-radius: 6px; }
.search-box-buttons button { margin: 30px 20px 10px 20px; padding: 13px 10px 13px 10px; min-width: 130px; color: #f0f6fc; background-color: #333333; font-size: 0.8rem; border: 1px solid #3C4043; border-radius: 6px; }
.search-box-buttons button:hover { border: 1px solid #5f6368; }

.password-generator { margin: 30px auto; padding: 0; }
.password-generator .password { margin: 10px auto; width: 300px; text-align: center; font-size: 14px; }
.password-generator .password { margin: 10px auto; width: 300px; text-align: center; font-size: 0.8rem; }

/* Search Results - Header */
.header-wrap { background-color: #1f242b; color: #f0f6fc; border-bottom: 2px solid #1fa4d1; }
.header-wrap .search, .header-wrap .button { position: relative; height: 40px; color: #f0f6fc; font-size: 100%; font-weight: 400; }
.header-wrap .search, .header-wrap .button { position: relative; height: 40px; color: #f0f6fc; font-size: 1rem; font-weight: 400; }
.header-wrap .search { margin: 28px 0 28px 158px; padding: 5px 5px 5px 15px; width: 580px; background-color: #1f242b; border: 1px solid #303842; border-radius: 10px 0 0 10px; }
.header-wrap .search[type="search"]::-webkit-search-cancel-button { background-size: 20px 20px; height: 20px; width: 20px; background-color: #f0f6fc; }
.header-wrap .button { margin: 28px 10px 28px 0; padding: 5px 20px 5px 15px; background-color: #1fa4d1; border: none; border-radius: 0 10px 10px 0; }

/* Search results - Header Navigation */
.navigation-header { margin-left: 165px; margin-bottom: 10px; }
.navigation-header img { margin-right: 5px; height: 16px; vertical-align: middle; }
.navigation-header a { margin-right: 20px; border: none; font-size: 16px; cursor: pointer; text-decoration: none; }
.navigation-header a { margin-right: 20px; border: none; font-size: 1rem; cursor: pointer; text-decoration: none; }
.navigation-header a:hover { color: #ebf3fa; }
.navigation-header a:visited { color: #1fa4d1; }
.navigation-header .active { padding-bottom: 8px; border-bottom: 4px #1fa4d1 solid; }

/* Search results - Main column */
/* Search results */
.main-column { width: 100%; }
.main-column ol .meta { margin: .75rem 0 .05rem 0; padding: .5rem 10px 0 10px; }
.main-column ol .sources { margin: .05rem 0 .75rem 0; padding: 0 10px .5rem 10px; font-size: 12px; color: #666; }
.main-column ol .sources { margin: .05rem 0 .75rem 0; padding: 0 10px .5rem 10px; font-size: 0.75rem; color: #666; }

.main-column ol .special-result { margin: .75rem 0 .25rem 0; padding: .5rem 10px; }
.main-column ol .result { margin: .50rem 0 .50rem 0; padding: 0; }
Expand All @@ -80,7 +81,7 @@ body.main { background-color: #1f242b; color: #f0f6fc; }
.main-column ol li article div.description .seeders { color: #518257; }
.main-column ol li article div.description .leechers { color: #c00; }

/* Image results - Main column */
/* Image results */
.main-column .image-wrapper { width: 100%; margin: .75rem 0 .75rem 0; }
@supports not (display: grid) {
.image-grid > * { max-width: 8rem; margin-left: auto; margin-right: auto; }
Expand All @@ -94,7 +95,7 @@ body.main { background-color: #1f242b; color: #f0f6fc; }
.main-column ol.image-grid .result .image-box::after { display: block; padding-bottom: 100%; content: ""; }
.main-column ol.image-grid .result .image-box img { position: absolute; object-fit: cover; width: 100%; height: 100%; border-radius: 10px; }
.main-column ol.image-grid .result .image-box img:hover { outline: none; border-color: #3C4043; box-shadow: 0 0 10px #3C4043; }
.main-column ol.image-grid .result span { padding: 5px 0 0 0; color: #666; font-size: 12px; }
.main-column ol.image-grid .result span { padding: 5px 0 0 0; color: #666; font-size: 0.75rem; }

/* Special results - Main column */
.main-column ol .special-result { background-color: #fefefe; }
Expand All @@ -108,6 +109,24 @@ body.main { background-color: #1f242b; color: #f0f6fc; }
.main-column ol li.special-result article div.source { display: inline-block; margin: 0; max-width: 100%; color: #666; font-size: 1rem; line-height: 1.6; letter-spacing: .2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: inherit; }
.main-column ol li.special-result article div.source a { margin: 0; color: #3f6e35; text-decoration: none; }

/* Magnet highlights */
.main-column .magnet-wrapper { width: 100%; margin: .75rem 0 .75rem 0; }
@supports not (display: grid) {
.magnet-grid > * { max-width: 8rem; margin-left: auto; margin-right: auto; }
.magnet-grid li.result { display: inline-block; margin: .75rem; width: 12.5%; }
.magnet-grid > * + * { margin-top: 1rem; }
}
@supports (display: grid) {
.main-column ol.magnet-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); grid-gap: 1rem; padding: .5rem 10px; }
}
.main-column ol.magnet-grid .result .magnet-box { position: relative; }
.main-column ol.magnet-grid .result .magnet-box::after { display: block; content: ""; }
.main-column ol.magnet-grid .result .magnet-box img { width: 100%; height: 100%; border-radius: 10px; }
.main-column ol.magnet-grid .result .magnet-box p { visibility: hidden; opacity: 0; position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: #1f242b; transition: opacity .1s, visibility .1s; padding: 10px; line-height: 1.4; text-align: center; font-size: 0.8rem; color: #f0f6fc; }
.main-column ol.magnet-grid .result .magnet-box a { display: block; position: relative; margin: 5px 0 5px 0; padding: 5px 20px; background-color: #1fa4d1; border: 1px solid #466f82; border-radius: 10px; color: #f0f6fc; font-weight: 800; text-align: center; }
.main-column ol.magnet-grid .result .magnet-box a:hover { text-decoration: none; }
.main-column ol.magnet-grid .result .magnet-box:hover p { visibility: visible; opacity: .90; outline: none; border-color: #3C4043; border-radius: 10px; box-shadow: 0 0 10px #3C4043; }

/* Misc */
.logo { position: absolute; margin: 28px 18px; }
.logo a { color: #f0f6fc; cursor: pointer; }
Expand All @@ -116,7 +135,7 @@ body.main { background-color: #1f242b; color: #f0f6fc; }
.G { color: #1fa4d1; }
.warning { position: relative; overflow: hidden; margin: 1rem 0 1rem 0; padding: .5rem 10px; color: #db9900; background-color: #ffffe0; border: 1px solid #e6db55; border-radius: 10px; }
.error { position: relative; overflow: hidden; margin: 1rem 0 1rem 0; padding: .5rem 10px; color: #c00; background-color: #ffebe8; border: 1px solid #c00; border-radius: 10px; }
.auth-error { margin-top: 15%; font-size: 32px; text-align: center; color: #eaeaea; }
.auth-error { margin-top: 15%; font-size: 2rem; text-align: center; color: #eaeaea; }

/* Footer bar */
.footer-wrap { background-color: #161616; color: #f0f6fc; border-top: 2px solid #303134; }
Expand All @@ -143,7 +162,7 @@ a.update { color: #c90; font-weight: bold; }
.navigation-header a { margin: 0 auto; padding: 0; }

/* Misc */
.logo { position: relative; display: block;margin: 0 auto; float: none; padding: 10px; font-size: 28px; }
.logo { position: relative; display: block;margin: 0 auto; float: none; padding: 10px; font-size: 1.75rem; }
}

@media only screen and (max-width:640px) { /* portrait tablets, portrait iPad, landscape e-readers, landscape 800x480 or 854x480 phones */
Expand All @@ -164,7 +183,7 @@ a.update { color: #c90; font-weight: bold; }
.navigation-header a { margin: 0 auto; padding: 0; }

/* Misc */
.logo { position: relative; display: block; float: none; margin: 0 auto; padding: 10px; font-size: 28px; }
.logo { position: relative; display: block; float: none; margin: 0 auto; padding: 10px; font-size: 1.75rem; }
}

@media only screen and (max-width:480px) { /* portrait e-readers (Nook/Kindle), smaller tablets @ 600 or @ 640 wide. */
Expand All @@ -174,7 +193,7 @@ a.update { color: #c90; font-weight: bold; }
/* Main page */
.search-box-main { margin-top: 10%; }
.search-box-main input { width: 80%; }
.search-box-main h1 { font-size: 45px; }
.search-box-main h1 { font-size: 2.5rem; }
.search-box-buttons button { display: table-row; margin: 30px 0px 0px 0px; width: 80%; }

/* Search Results - Header */
Expand All @@ -185,8 +204,11 @@ a.update { color: #c90; font-weight: bold; }
.navigation-header { display: flex; margin: 0; padding: 0; align-items: baseline; }
.navigation-header a { margin: 0 auto; padding: 0; }

/* Magnet highlights */
.main-column .magnet-wrapper { display: none; }

/* Misc */
.logo { position: relative; display: block; float: none; margin: 0 auto; padding: 10px; font-size: 28px; }
.logo { position: relative; display: block; float: none; margin: 0 auto; padding: 10px; font-size: 1.75rem; }
}

@media only screen and (max-width:320px) { /* smartphones, iPhone, portrait 480x320 phones */
Expand All @@ -196,7 +218,7 @@ a.update { color: #c90; font-weight: bold; }
/* Main page */
.search-box-main { margin-top: 40px; }
.search-box-main input { width: 80%; }
.search-box-main h1 { font-size: 45px; }
.search-box-main h1 { font-size: 2.5rem; }
.search-box-buttons button { display: table-row; margin: 20px 0px 0px 0px; width: 80%; }

/* Search Results - Header */
Expand All @@ -207,6 +229,9 @@ a.update { color: #c90; font-weight: bold; }
.navigation-header { display: flex; margin: 0; padding: 0; align-items: baseline; }
.navigation-header a { margin: 0 auto; padding: 0; }

/* Magnet highlights */
.main-column .magnet-wrapper { display: none; }

/* Misc */
.logo { position: relative; float: none; display: block; margin: 0 auto; padding: 10px; font-size: 28px; }
.logo { position: relative; float: none; display: block; margin: 0 auto; padding: 10px; font-size: 1.75rem; }
}
119 changes: 69 additions & 50 deletions config.default.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,13 @@
CACHE:
It is highly recommended to enable caching as it'll speed up repeat searches by a lot.
"on" (Recommended)
"off" Disables cache
CACHE_TYPE:
Choose how to cache results. The cache is NOT unique per user but shared between all users. Different users searching for the exact same thing get the same results.
Default caching method is APCu. Alternatively, you can store the results in text files in the /cache/ folder.
Ignored if above 'cache' option is set to off.
"apcu" (Recommended) faster, utilize memory.
"file" Store results in text files.
CACHE_TIME:
Minutes the result should be cached. Accepts a numeric value between 1 and 720.
Expand All @@ -34,12 +39,21 @@
To not show outdated results the 'limit' is 720 minutes, which equals 12 hours.
Ignored if above 'cache' option is set to off.
CACHE_TYPE:
Choose how to cache results. The cache is NOT unique per user but shared between all users. Different users searching for the exact same thing get the same results.
Default caching method is APCu. Alternatively, you can store the results in text files in the /cache/ folder.
Ignored if above 'cache' option is set to off.
"apcu" (Recommended) faster, utilize memory.
"file" Store results in text files.
ENABLE IMAGE SEARCH:
Enable or disable image searches - Search results are provided by Yahoo! Images.
ENABLE TORRENT SEARCH:
Enable or disable searching for torrent downloads.
ENABLE SEARCH ENGINES:
Enable or disable search engines.
ENABLE MAGNET CRAWLERS:
Enable or disable crawlers to pull magnet links from.
LANGUAGE:
DuckDuckGo, Google and Ecosia are language agnostic. But they DO profile you for your locale.
Expand All @@ -55,56 +69,34 @@
!!CAREFUL!! This is a blanket setting, if what you're searching for primarily has social media links then less relevant results may show first.
Accepts a numeric value between 1 and 10. With 10 having *NO* effect on the rank, and 0 not ranking the link at all (shows very very low in the results)
ENABLE IMAGE SEARCH:
Enable or disable image searches - Search results are provided by Yahoo! Images.
"on" (Default)
"off"
ENABLE TORRENT SEARCH:
Enable or disable searching for torrent downloads.
"on" (Default)
"off"
SHOW SEARCH SOURCE:
Show which search engine(s) came up with the result.
"on" (Default)
"off"
SHOW SEARCH RANK:
When search source is enabled, show the rank Goosle gave the result.
"on"
"off" (Default)
IMDB ID SEARCH:
Highlight imdb results if it's a tv-show.
Highlight imdb results if it's a tv-show or movie.
Handy for finding better results for specific tv-shows through EZTV and The Pirate Bay.
"on"
"off" (Default)
PASSWORD GENERATOR
Show a password generator on the Goosle home page.
"on" (Default)
"off"
SPECIAL:
Enable or disable special searches that show up before search results.
"on" (Default)
"off" Disable this special search
USER AGENTS:
Add more or less user agents to the list. Keep at least one!
On every search Goosle picks one at random to identify as.
Keep them generic to prevent profiling, but also so that the request comes off as a generic boring browser and not as a server/crawler.
Safari, Firefox and Internet Explorer/Edge should be safe to use.
Chrome may attract attention because of the lack of Chrome information (tracking) aside from the user agent. The search engine may know something is 'weird'.
Opera/Edge/Brave and many others use Chrome under the hood and are not a good pick for that reason.
Mobile agents may work, but some services like Wikipedia are a bit picky when it comes to answering API calls. Mobile users generally do not use APIs, so they may block your search.
SHOW ZERO SEEDERS:
Set to "on" to include results with 0 seeders (slow or stale downloads). Off to exclude these results.
"on" (Default)
"off"
YTS HIGHLIGHT:
If you've enabled the YTS special search, you can also choose what it should show. The 8 most [insert choice] movies.
"date_added" = Newest movies (Default).
"rating" = Highest rated movies as per imdb.
"download_count" = Most downloaded movies.
BLOCK 1337x CATEGORIES:
Add category IDs of 1337x categories, check /engines/torrent/1337x.php for a list of known categories.
Expand All @@ -119,6 +111,18 @@
Movies can be in multiple categories, if a movie is in 5 categories it only has to match one to be filtered out.
Accepts a basic array of keywords, comma separated.
USER AGENTS:
Add more or less user agents to the list. Keep at least one!
On every search Goosle picks one at random to identify as.
Keep them generic to prevent profiling, but also so that the request comes off as a generic boring browser and not as a server/crawler.
Safari, Firefox and Internet Explorer/Edge should be safe to use.
Chrome may attract attention because of the lack of Chrome information (tracking) aside from the user agent. The search engine may know something is 'weird'.
Opera/Edge/Brave and many others use Chrome under the hood and are not a good pick for that reason.
Mobile agents may work, but some services like Wikipedia are a bit picky when it comes to answering API calls. Mobile users generally do not use APIs, so they may block your search.
TORRENT TRACKERS:
Only used for The Pirate Bay, LimeTorrents and YTS.
Generally you do not need to change these.
Expand All @@ -133,14 +137,25 @@
"cache_type" => "apcu", // Default: apcu
"cache_time" => 30, // Default: 30 (Minutes)

"duckduckgo_language" => "uk-en", // Default: uk-en (United Kingdom)
"wikipedia_language" => "en", // Default: en (English)

"social_media_relevance" => 8, // Default: 8

"enable_image_search" => "on", // Default: on
"enable_torrent_search" => "on", // Default: on
"enable_duckduckgo" => "on", // Default: on
"enable_google" => "on", // Default: on
"enable_wikipedia" => "on", // Default: on
"enable_ecosia" => "off", // Default: on
// Site uses some kind of bot detector preventing crawler from working reliably since Feb 1, 2024, remove support in future release?)

"enable_limetorrents" => "on", // Default: on
"enable_piratebay" => "on", // Default: on
"enable_yts" => "on", // Default: on
"enable_nyaa" => "on", // Default: on
"enable_eztv" => "on", // Default: on
"enable_l33tx" => "off", // Default: off
// Site now uses cloudflare preventing crawler from working since Jan 20, 2024, remove support in future release?)

"duckduckgo_language" => "uk-en", // Default: uk-en (United Kingdom)
"wikipedia_language" => "en", // Default: en (English)
"social_media_relevance" => 8, // Default: 8
"show_search_source" => "on", // Default: on
"show_search_rank" => "off", // Default: off
"imdb_id_search" => "off", // Default: off
Expand All @@ -149,20 +164,24 @@
"special" => array(
"currency" => "on", // Default: on, Currency converter
"definition" => "on", // Default: on, Word dictionary
"phpnet" => "off" // Default: off, PHP-dot-net highlight
"phpnet" => "on", // Default: on, PHP-dot-net highlight
"yts" => "on", // Default: on, Show latest, or highlighted movies from YTS
"eztv" => "on" // Default: on, Show latest TV Show episodes from EZTV
),

"show_zero_seeders" => "on", // Default: on
"yts_highlight" => "date_added", // Default: "date_added"
"leetx_categories_blocked" => array(3, 7, 47), // Default: 3, 7, 47
"piratebay_categories_blocked" => array(206, 210), // Default: 206, 210
"yts_categories_blocked" => array("horror"), // Default: "horror"

"user_agents" => array(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15) Gecko/20100101 Firefox/119.0", // macOS 10.15, Firefox 119
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) Gecko/20100101 Firefox/116.0", // Windows 10, Firefox 116
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64) Gecko/20100101 Firefox/83.0", // Linux Ubuntu, Firefox 83
"Mozilla/5.0 (X11; Linux i686) Gecko/20100101 Firefox/119.0", // Linux Generic, Firefox 119
),

"show_zero_seeders" => "on", // Default: on
"leetx_categories_blocked" => array(3, 7, 47), // Default: 3, 7, 47
"piratebay_categories_blocked" => array(206, 210), // Default: 206, 210
"yts_categories_blocked" => array("horror"), // Default: "horror"
"torrent_trackers" => array(
"http://nyaa.tracker.wf:7777/announce",
"http://tracker.openbittorrent.com:80/announce",
Expand Down
Loading

0 comments on commit f7971ae

Please sign in to comment.