import json\nimport threading\nimport time\n\nimport requests\n\nwith open('./nums.txt', 'r') as f:\n n = int(f.read())\n\n\ndef like(id_):\n global n\n try:\n if not json.loads(user.get(f'https://api.codemao.cn/creation-tools/v1/works/{id_}').text)['abilities']['is_praised']:\n user.post(f'https://api.codemao.cn/nemo/v2/works/{id_}/like')\n n += 1\n except:\n pass\n\ni = 0\n\nuser = requests.session()\n\nlogin_data = {'pid': '65edCTyg',\n 'identity': '',\n 'password': ''}\n\nuser.post('https://api.codemao.cn/tiger/v3/web/accounts/login', json=login_data)\nlast_n = -1\n\nwhile True:\n try:\n works = json.loads(requests.get('https://api.codemao.cn/creation-tools/v1/pc/discover/newest-work?work_origin_type=ORIGINAL_WORK&limit=50', {'offset': i * 50}, timeout=3).text)\n except:\n print('error')\n i += 1\n continue\n for work in works['items']:\n threading.Thread(target=like, args=(work['work_id'],)).start()\n print(n)\n with open('./nums.txt', 'w') as f:\n f.write(str(n))\n i += 1\n if i >= 96:\n i = 0\n time.sleep(60)\n if n == last_n:\n i = 0\n time.sleep(10)\n last_n = n\n\nconst fs = require('fs');\nconst axios = require('axios');\n\nlet n = parseInt(fs.readFileSync('./nums.txt', 'utf8'));\n\nasync function like(id) {\n try {\n const response = await user.get(https://api.codemao.cn/creation-tools/v1/works/${id});\n const data = JSON.parse(response.data);\n if (!data.abilities.is_praised) {\n await user.post(https://api.codemao.cn/nemo/v2/works/${id}/like);\n n += 1;\n }\n } catch (error) {\n console.error(error);\n }\n}\n\nlet i = 0;\n\nconst user = axios.create({\n baseURL: 'https://api.codemao.cn',\n});\n\nconst loginData = {\n pid: '65edCTyg',\n identity: '',\n password: '',\n};\n\nuser.post('/tiger/v3/web/accounts/login', loginData)\n .then(() => {\n let lastN = -1;\n\n setInterval(async () => {\n try {\n const response = await axios.get('https://api.codemao.cn/creation-tools/v1/pc/discover/newest-work', {\n params: {\n work_origin_type: 'ORIGINAL_WORK',\n limit: 50,\n offset: i * 50,\n },\n timeout: 3000,\n });\n const works = response.data;\n for (const work of works.items) {\n like(work.work_id);\n }\n console.log(n);\n fs.writeFileSync('./nums.txt', n.toString());\n i += 1;\n if (i >= 96) {\n i = 0;\n await new Promise(resolve => setTimeout(resolve, 60000));\n }\n if (n === lastN) {\n i = 0;\n await new Promise(resolve => setTimeout(resolve, 10000));\n }\n lastN = n;\n } catch (error) {\n console.error(error);\n i += 1;\n }\n }, 0);\n })\n .catch(error => {\n console.error(error);\n });

Codemao 作品点赞脚本 (Python & Node.js)

原文地址: https://www.cveoy.top/t/topic/pKAR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录