import json import hashlib import requests import time import random # Function to generate a unique name for the upload def generate_upload_name(): timestamp = int(time.time()) rand_str = ''.join(random.choices('abcdefghijklmnopqrstuvwxyz', k=3)) return f"{timestamp}-{rand_str}" # Function to upload JSON data to termbin def upload_to_termbin(data): try: resp = requests.post('https://termbin.com', data=data.encode('utf-8'), timeout=5) if resp.status_code == 200: key = resp.text.strip() md5sum = hashlib.md5(data.encode('utf-8')).hexdigest() return {'service': 'termbin', 'key': key, 'md5sum': md5sum} else: print(f"Failed to upload to termbin.com. Response code: {resp.status_code}") return None except requests.exceptions.RequestException as e: print(f"Failed to upload to termbin.com. Error: {str(e)}") return None # Function to upload JSON data to pastie def upload_to_pastie(data): try: resp = requests.post('https://pastie.io/documents', data=data.encode('utf-8'), timeout=5) if resp.status_code == 200: key = resp.json()['key'] md5sum = hashlib.md5(data.encode('utf-8')).hexdigest() return {'service': 'pastie', 'key': key, 'md5sum': md5sum} else: print(f"Failed to upload to pastie.io. Response code: {resp.status_code}") return None except requests.exceptions.RequestException as e: print(f"Failed to upload to pastie.io. Error: {str(e)}") return None # Upload data to both termbin and pastie def upload_data_to_services(data): upload_name = generate_upload_name() print(f"\nUploading data to services with name {upload_name}...\n") paste_dict = {'name': upload_name} services = {'termbin': upload_to_termbin, 'pastie': upload_to_pastie} for service, upload_function in services.items(): result = upload_function(data) if result is not None: paste_dict[service] = result print(f"JSON object uploaded to {service}: https://{service}.com/{result['key']}") with open('paste_dict.json', 'a+') as f: f.write(json.dumps(paste_dict) + '\n') print(f"\nUploads completed successfully.") # Test function def test(): data = '{"name": "John Doe", "age": 30, "city": "New York"}' upload_data_to_services(data) if __name__ == '__main__': test()