Skip to content

Commit

Permalink
ffmpeg
Browse files Browse the repository at this point in the history
  • Loading branch information
King-1025 committed Jul 6, 2020
1 parent 3d05913 commit f09d14d
Show file tree
Hide file tree
Showing 7 changed files with 274 additions and 27 deletions.
10 changes: 4 additions & 6 deletions .config
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
# auto config glive
TASK_CHECK_USE=glive
TASK_DOWNLOAD_USE=youtube-dl
# auto config axel
TASK_CHECK_USE=axel
TASK_DOWNLOAD_USE=axel
TASK_DOWNLOAD_OPTION=-q
#TASK_SPLIT_USE=simple
#TASK_COMPRESS_USE=zip
TASK_SPLIT_USE=skip
TASK_COMPRESS_USE=skip
TASK_UPLOAD_USE=chx
TASK_NOTIFY_USE=skip
TASK_NOTIFY_USE=mail
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
$ wg
# ffmpeg
---
https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20200628-4cfcfb3-win64-static.zip
2 changes: 1 addition & 1 deletion stage/cookie.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"DSSTASH_LOG": "C_0-UN_0-US_142823964-T_1592578956694", "UID": "142823964", "_d": "1592578956693", "_uid": "142823964", "chaoxinguser": "1", "lv": "0", "uf": "f9866f9a46b70622b0dee5ad98478a83f5ad4686cb8037a27a4fb73fc63758498e048ef39614c05e301c20c4e0fbf3589b0594e13f4b452fbdd6b93a431584911471850d8bf7e34c527a153436bf8cd7efb53b2d16783d0a", "uname": "\"\"", "vc": "419F4831A8393F2432AC783E8D456ADF", "vc2": "F5ECF4246A8650F8181E0CB9B16BBDAC", "vc3": "TDmMSoMou94qHHb75cLM4cZhfNk6cUqFMxEILx1TfN3DWGrRG4nPXJn%2FmzwMFl6Q6Q7hJGjJTnYjM0xh9p0Gv80C%2F10w4DOnmLTJKIoP3OTALOl%2Fox3GPBjPX0VTATDSFGCuAHlU9RMYnPU0Cgyz7v16vT8s3o2%2FTRONJ6QB06w%3D2607ad770aaf9ce5fa495d5e390a2a99", "xxtenc": "a09a77ce81fcae96bbc6da26bc9a8dca", "JSESSIONID": "DE62B0374841CDF37DE0448DA8C839A1", "route": "675f734212e82e8a062506a8bb55a65c"}
{"DSSTASH_LOG": "C_0-UN_0-US_143282464-T_1592735572101", "UID": "143282464", "_d": "1592735572099", "_uid": "143282464", "chaoxinguser": "1", "lv": "0", "uf": "f9866f9a46b70622b0dee5ad98478a83bbdffae6150a0c047a4fb73fc63758490f8a1422c3c36d951f41cf0fdb2cfd699b0594e13f4b452fbdd6b93a431584911471850d8bf7e34cdcfb06ece2d550433becbb4cf260d5f6", "uname": "cxwid143282464", "vc": "27B195E63496D81B5548CE74B2574573", "vc2": "5B7CA12DF62A081B70F83F8FCF7FEACE", "vc3": "EjqxGgUtSt1L5Qtb%2FwEIKSjTvjQGIZMm56JRs0TuYRxFIVWGZq8qQN9hMh9lUBqyoUYFl908am1zCez0KtoP9moExWuPkhUjp8Ch0RaHJK2wl13YZQj0gAXlRSC4wyWHe%2BmMvUw9Lz1MgfmjR%2FHB2HKKbVH4sIBBwi2g3IWiIhs%3D237a49ca1e0d05f29d1a1ce4d6005ca8", "xxtenc": "9429549b4ee3e6f9e74e21d9e81a1473", "JSESSIONID": "3BD82207F3685688BE48BB0750451AA7", "route": "b9434b2aa11d2e38febba82dc6592cde"}
107 changes: 98 additions & 9 deletions tools/chaoxing/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@


import os
import re
import sys
import json
import time
import base64
import requests
from requests_toolbelt.multipart import encoder
from contextlib import closing

from data import DATA
from data import DATA, CXP_USER, CXP_PSWD, CXP_PUID_ROOT, CXP_PUID, CXP_LPATH
from tool import progress, bytes2human, formatSimpleTime, getFileLastGMTime


Expand Down Expand Up @@ -42,14 +44,19 @@ def setQuite(self, v):
return self

def setName(self, name):
self.name = name
if name is not None:
self.name = name
else:
self.name = CXP_USER
return self

def setPassword(self, password):
if password is None:
self.password = None
if password is not None:
self.password = password
else:
pswd_bytes = bytes(password, encoding='utf-8')
self.password = CXP_PSWD
if self.password is not None:
pswd_bytes = bytes(self.password, encoding='utf-8')
self.password = str(base64.b64encode(pswd_bytes), encoding='utf-8')
return self

Expand Down Expand Up @@ -151,7 +158,7 @@ def post(self, url):
data = {}
return self.base_post(url, header, data)

def base_post(self, url, header, data):
def base_post(self, url, header, data=None):
r = self.session.post(url=url, headers=header, data=data)
if r.status_code == 200:
self.data=json.loads(r.text)
Expand All @@ -175,13 +182,39 @@ def base_mkdir(self, name, parentId, puid=None):
}
return self.base_post(url, header, data)

def empty_recycle(self):
url = DATA["api"]["recycle"]["empty"]["url"]
header = DATA["pan_header"]
return self.base_post(url, header)

def delete(self, ids):
size = len(ids)
if size <= 0:
return self
url = DATA["api"]["delete"]["url"]
header = DATA["pan_header"]
resids=""
resourcetype=""
puids=""
for i in ids:
resids="%s,%s" % (str(i), resids)
resourcetype="0,%s" % resourcetype
puids="%s,%s" %(str(CXP_PUID), puids)
data = {
"resids" : resids,
"resourcetype" : resourcetype,
"puids" : puids
}
#print(data)
return self.base_post(url, header, data)

def check_puid(self, parentId, puid):
_puid = puid
if _puid is None:
if parentId == self.res["parentId"]:
_puid = "0"
_puid = CXP_PUID_ROOT
else:
_puid = "142823964"
_puid = CXP_PUID
return _puid

def query(self, parentId=None, puid=None):
Expand Down Expand Up @@ -304,7 +337,7 @@ def bytes2human(self, n):

def format(self):
data=self.data
if data is not None:
if data is not None and "list" in data:
i=0
print("details:\n")
for ch in data["list"]:
Expand All @@ -327,3 +360,59 @@ def format(self):
print("total: %d\n" % i)
else:
print("data is null!")

def download(self, name, rid, path=None, _check=True):
if path is None:
return self.base_download(name, rid, CXP_LPATH, _check)
else:
return self.base_download(name, rid, path, _check)

def base_download(self, name, rid, _dir, _check):
url = DATA["api"]["download"]["url"]
url = "%s/%s" % (url, str(rid))

print("name: %s" %name)
print("oid: %s\n" %rid)

path=None

print("fetch %s ..." % url)

with closing(self.session.get(url,headers=self.header,stream=True)) as response:
if name is None:
line=response.headers['Content-Disposition']
matchObj = re.search( r'.*filename=(.*);.*', line, re.M|re.I)
if matchObj:
name=matchObj.group(1)
else:
print("No match!!")
sys.exit(0)
else:
#path=name
pass

chunk_size = 1024 # 单次请求最大值
content_size = int(response.headers['content-length'])
# print((response.headers))
data_count = 0
path=os.path.join(_dir, name)
print("name: %s" %name)
print("path: %s" %path)
print("")
if _check is True:
if os.path.isfile(path):
print("%s exist!" %path)
return path

with open(path, "wb") as file:
for data in response.iter_content(chunk_size=chunk_size):
file.write(data)
data_count = data_count + len(data)
now_jd = (data_count / content_size) * 100
#print("\r%s:%d%% (%s/%s) " % (name, now_jd,
print("\rstatus: %3d%% (%6s /%6s) " % (now_jd,
self.bytes2human(data_count),
self.bytes2human(content_size)), end=" ")

print("\n\n%s" % path)
return path
41 changes: 36 additions & 5 deletions tools/chaoxing/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,31 @@
# -*- utf-8; -*-


CHXPAN_HOST="pan-yz.chaoxing.com"
CXP_PARTID="480436215806652416"

CXP_HOST="test"
CXP_USER="16530800938"
CXP_PSWD="12345678T"
CXP_PARENTID="481515948815077376"
CXP_PARTID=CXP_PARENTID
CXP_ENC="a9183addea85e0ab95950a355cdf11d9"
CXP_PUID_ROOT="0"
CXP_PUID="143282464"
CXP_LPATH="/sdcard/Download/gaction"


CHXPAN_HOST_MAIN="pan-yz.chaoxing.com"
CHXPAN_HOST_TEST="test.pan.chaoxing.com"

CHXPAN_HOST = CHXPAN_HOST_MAIN

if CXP_HOST == "test":
CHXPAN_HOST = CHXPAN_HOST_TEST

BASE_URL="http://%s" % CHXPAN_HOST
OPT_URL="%s/opt" % BASE_URL
REC_URL="%s/recycle" % BASE_URL
DA_URL="http://d0.ananas.chaoxing.com"

USER_AGENT='Mozilla/5.0 (Linux; Android 5.1; OPPO R7s Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/81.0.4044.138 Mobile Safari/537.36'

AUTH_HOST="passport2.chaoxing.com"
Expand All @@ -17,6 +37,17 @@
DATA={
"cookie" : DEFAULT_COOKIE_PATH,
"api":{
"recycle": {
"empty":{
"url":"%s/empty" % REC_URL
}
},
"download":{
"url":"%s/download" % DA_URL
},
"delete":{
"url":"%s/delres" % OPT_URL
},
"mkdir":{
"url":"%s/newfolder" % OPT_URL
},
Expand Down Expand Up @@ -83,17 +114,17 @@
"end":"false",
"action":"normal",
"current":[],
"parentId":"478835463468314624",
"parentId":CXP_PARENTID,
"choosed":{},
"choosedlen":0,
"foldercounter":0,
"speedclasscon":0,
"foldernewcounter":0,
"puid":0,
"puid":CXP_PUID_ROOT,
"isshare":"false",
"istome":"false",
"foldertomecounter":0,
"shareid":0
},
"enc" : "3c15cae99038654d85ca48de12b70d3b"
"enc" : CXP_ENC
}
40 changes: 35 additions & 5 deletions tools/chaoxing/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import time
from api import ChaoXingPAN
from data import CXP_PARTID as PART_ID
from tool import may_download_record


if __name__ == "__main__":
Expand All @@ -15,8 +16,7 @@
if argc < 2:
print("it needs 2 arguments at least!")
sys.exit(1)
#cxp = ChaoXingPAN().setQuite(True).login()
cxp = ChaoXingPAN("18749089524", "12345678x").setQuite(True).login()
cxp = ChaoXingPAN().setQuite(True).login()
if cxp.isLogin:
action = str(sys.argv[1])
if action == "list":
Expand All @@ -25,11 +25,34 @@
cxp.base_query(prid).format()
else:
cxp.query().format()
elif action == "empty_rec":
print(json.dumps(cxp.empty_recycle().data))
elif action == "delete":
if argc > 2:
ids = sys.argv[2:]
print(json.dumps(cxp.delete(ids).data))
elif action == "mkdir":
if argc > 3:
print(json.dumps(cxp.mkdir(str(sys.argv[2]), str(sys.argv[3])).data))
elif argc > 2:
print(json.dumps(cxp.mkdir(str(sys.argv[2])).data))
elif action == "query":
if argc > 2:
print(json.dumps(cxp.query(str(sys.argv[2])).data))
else:
print(json.dumps(cxp.query().data))
elif action == "pure_download":
if argc == 3:
path=cxp.download(None, str(sys.argv[2]), _check=False)
elif argc >= 4:
path=cxp.download(str(sys.argv[3]), str(sys.argv[2]), _check=False)
elif action == "download":
if argc == 3:
path=cxp.download(None, str(sys.argv[2]), _check=False)
elif argc >= 4:
path=cxp.download(str(sys.argv[3]), str(sys.argv[2]), _check=False)

may_download_record(cxp, path)
elif action == "upload" and argc > 2:
path = str(sys.argv[2])
if os.path.exists(path) is False:
Expand All @@ -38,7 +61,7 @@
part=PART_ID
if os.path.isfile(path):
print("> upload file: %s" % path)
cxp.upload(path, part)
cxp.upload(path, parentId=part)
print(cxp.data)
elif os.path.isdir(path):
work_dir = path
Expand All @@ -48,15 +71,19 @@
if os.path.isdir(pp):
print("> upload_dir: %s" % ff)
#print("\033[1;6;37m> upload_dir: %s\033[m" % ff)
ch_list=cxp.base_query(part).data["list"]
ch_list = []
if "list" in cxp.base_query(part).data:
ch_list=cxp.data["list"]
prid=None
for ch in ch_list:
if ff == ch["name"]:
if not ch["isfile"]:
prid=ch["id"]
break
if prid is None:
prid=cxp.base_mkdir(ff, part).data["data"]["id"]
prid = part
if "data" in cxp.base_mkdir(ff, part).data:
prid = cxp.data["data"]["id"]
else:
print("skip prid: %s" % prid)
record=[]
Expand All @@ -69,8 +96,11 @@
print("\033[1;6;32m> upload part %s... (%d/%d %d:%d)\033[m" % (ch_ff, f_l, f_c, p_c, count))
ch_path = os.path.join(parent, ch_ff)
size = os.path.getsize(ch_path)
print("ch_path: %s" % ch_path)
print("prid: %s" % prid)
cxp.upload(ch_path, prid)
#print(cxp.data)
#print()
if cxp.data is None:
continue
if "success" in cxp.data:
Expand Down
Loading

0 comments on commit f09d14d

Please sign in to comment.