Advertisement
TyphonBaalHammon

Curiouscat backup

Sep 29th, 2024
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.65 KB | Software | 0 0
  1. import requests
  2. import json
  3. import time
  4. import logging
  5. import random
  6.  
  7. CURIOUSCAT_BASE_URL = "https://curiouscat.live/api/v2.1/profile"
  8.  
  9.  
  10. if __name__ == "__main__":
  11.     import argparse
  12.     import sys
  13.     from datetime import datetime
  14.     from pathlib import Path
  15.     import os
  16.     logging.basicConfig(level=logging.DEBUG)
  17.  
  18.     argparseur = argparse.ArgumentParser(usage="Save curiouscat profiles")
  19.     argparseur.add_argument("username",nargs=1)
  20.    
  21.     args = argparseur.parse_args()
  22.  
  23.     username = args.username[0]
  24.  
  25.     timestamp = datetime.now().timestamp()
  26.  
  27.     num_posts = 1
  28.  
  29.     page_num = 1
  30.  
  31.     while num_posts > 0:
  32.         page_num += 1
  33.         CURIOUSCAT_URL_PARAMS = f"?username={username}&max_timestamp={timestamp}&_ob=noregisterOrSignin2"
  34.         URL = CURIOUSCAT_BASE_URL+CURIOUSCAT_URL_PARAMS
  35.         resp = requests.get(url=URL)
  36.         body = resp.content
  37.         respdict = json.loads(body)
  38.  
  39.         date_string = datetime.fromtimestamp(timestamp).strftime("%Y%m%d-%H%M%S")
  40.         dir_name = f"archive/{username}"
  41.         dir_path = Path(dir_name)
  42.         dir_path.mkdir(parents=True, exist_ok=True)
  43.         file_path = Path(dir_path,f"{username}_archive_{date_string}.json")
  44.         with open(file_path,"w") as out_file:
  45.             json.dump(respdict,out_file,indent=4)
  46.  
  47.         num_posts = len(respdict["posts"])
  48.         if  num_posts > 0:
  49.             old_timestamp = timestamp
  50.             timestamp = respdict["posts"][-1]["post"]["timestamp"]
  51.             timestamp = int(timestamp)
  52.             if timestamp == old_timestamp:
  53.                 break
  54.             time.sleep(1+random.random())
  55.  
  56.  
  57.     sys.exit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement