Circumvent clownflare, make categories more specific. - gopherbay - piratebay gopher interface
(HTM) git clone git://bitreich.org/gopherbay git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/gopherbay
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
(DIR) LICENSE
---
(DIR) commit 574f32f812b53ec9242ce9084c972c42469b0f7a
(DIR) parent 2c20385c9b3becf36b5000b4ac76c2f7f2a4d09e
(HTM) Author: Christoph Lohmann <20h@r-36.net>
Date: Sun, 11 Jan 2026 19:32:21 +0100
Circumvent clownflare, make categories more specific.
Diffstat:
M index.dcgi | 42 +++++++++++++++++++++++++------
1 file changed, 34 insertions(+), 8 deletions(-)
---
(DIR) diff --git a/index.dcgi b/index.dcgi
@@ -87,6 +87,10 @@ proxies = {
"https": "socks5h://localhost:9050"
}
+headers = {
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
+}
+
def main(args):
if len(args) != 7:
sys.stderr.write("Must be run as geomyidae dcgi.\n")
@@ -133,10 +137,22 @@ def main(args):
def category2gph(kind):
gph = logo()
- if kind == "top" or kind == "recent":
+ begin_category = list(categories.keys())[0]
+ end_category = list(categories.keys())[-1]
+ if kind == "top" or kind == "recent" or kind == "category":
gph += "[1|all %s|%s/search/%s|server|port]\n" % \
(kind, g_base, kind)
- for c in categories:
+ else:
+ try:
+ c = int(kind)
+ except ValueError:
+ return "[3|Invalid category.||server|port]\n"
+ begin_category = c - (c % 100)
+ end_category = begin_category + 99
+
+ for c in categories.keys():
+ if c < begin_category or c > end_category:
+ continue
if (c % 100) == 0:
gph += "[1|= %s =|%s/search/%s:%s|server|port]\n" % \
(categories[c], g_base, kind, c)
@@ -149,33 +165,40 @@ def main(args):
if q == "":
return requests.get(pb_data % (pb_precompiled,\
"top100", "all"),\
+ headers=headers,\
proxies=proxies).json()
elif q.startswith("recent"):
if ":" in q:
(q, category) = q.split(":", 1)
return requests.get(pb_data % (pb_precompiled,\
"top100_48h", category),\
- proxies=proxies)
+ headers=headers,\
+ proxies=proxies).json()
else:
return requests.get(pb_data % (pb_precompiled,\
"top100", "recent"),\
- proxies=proxies)
+ headers=headers,\
+ proxies=proxies).json()
elif q.startswith("top"):
if ":" in q:
(q, category) = q.split(":", 1)
return requests.get(pb_data % (pb_precompiled,\
"top100", category),\
- proxies=proxies)
+ headers=headers,\
+ proxies=proxies).json()
else:
return requests.get(pb_data % (pb_precompiled,\
"top100", "all"),\
- proxies=proxies)
+ headers=headers,\
+ proxies=proxies).json()
else:
return requests.get(pb_search, params={"q":q},\
+ headers=headers,\
proxies=proxies).json()
# Proudly taken from parazyd.
def print_category(c):
+ c = int(c)
if c in categories:
masterc = str(c)[0] + "00"
if masterc in categories:
@@ -203,7 +226,7 @@ def main(args):
gph += "[1|Category: %s|%s/category/%s|server|port]\n" % \
(name2gph(print_category(r["category"])),\
g_base, r["category"])
- gph += "Se:%d,Le:%d,F#:%d,Si:%s,T:%s,U:%s\n" % \
+ gph += "Seeders:%d,Leechers:%d,Files:%d,Size:%s,T:%s,U:%s\n" % \
(int(r["seeders"]), int(r["leechers"]),\
int(r["num_files"]), size2human(int(r["size"])),\
time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(int(r["added"]))),\
@@ -219,7 +242,10 @@ def main(args):
elif cmds[1] == "":
gph = index2gph()
elif cmds[1] == "category" or cmds[1] == "top" or cmds[1] == "recent":
- gph = category2gph(cmds[1])
+ if len(cmds) > 2:
+ gph = category2gph(cmds[2])
+ else:
+ gph = category2gph(cmds[1])
elif cmds[1] == "search":
# https://apibay.org/q.php?q=Example
# scm:apibay