X/pg/lib/getsearchtxt.py

86 lines
2.5 KiB
Python
Raw Normal View History

2023-12-31 05:31:04 +02:00
#!/usr/bin/env python3
import sys
import re
import json
import requests
import time
p=re.compile(r'.*/s/(.*)')
reqcount=1
sharedict=set()
def getlist(shareid, fileid):
global reqcount
global sharedict
reqcount += 1
if reqcount % 5 == 0:
print(f"reqcount:{reqcount} shareid:{shareid} fileid:{fileid}",file=sys.stderr)
#time.sleep(1)
url = f'http://192.168.101.188:9978/proxy?do=pikpak&type=list&share_id={shareid}&file_id={fileid}&pass_code='
print(f"url: {url}",file=sys.stderr)
resp = requests.get(url)
content = resp.content.decode('utf-8')
lines = content.split("\n")
if "folder" not in content and len(lines)<=4:
return
for line in lines:
linearr = line.split('\t')
if len(linearr)>2:
if linearr[2] == "folder":
m = p.match(linearr[0])
if m:
arr = m.group(1).split("/")
else:
arr = linearr[0].split("/")
shareid=arr[0]
fileid=arr[1] if len(arr)>1 else ""
if shareid+"/"+fileid in sharedict:
continue
print(line)
sys.stdout.flush()
getlist(shareid,fileid)
else:
print(line)
sys.stdout.flush()
def main():
try:
with(open(sys.argv[1]+".txt","r",encoding="utf-8")) as f:
while True:
lines = f.readlines()
if len(lines)<=0:
break
for line in lines:
linearr = line.split("\t")
m = p.match(linearr[0])
if m:
arr = m.group(1).split("/")
else:
arr = linearr[0].split("/")
if len(arr)>1:
shareid = arr[0]
fileid = arr[1]
sharedict.add(shareid+"/"+fileid)
except:
pass
with(open(sys.argv[1],"r",encoding="utf-8")) as f:
j = json.load(f)
for c in j:
shareid=c.get("type_id")
fileid=""
m = p.match(shareid)
if m:
arr = m.group(1).split("/")
else:
arr = shareid.split("/")
shareid=arr[0]
fileid=arr[1] if len(arr)>1 else ""
if shareid+"/"+fileid in sharedict:
continue
getlist(shareid,fileid)
main()