mpaste/mpaste.py
2024-07-26 17:43:15 +03:00

111 lines
3.0 KiB
Python

import requests
import socket
def publish_to_termbin(content):
host = 'termbin.com'
port = 9999
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, port))
sock.sendall(content.encode('utf-8'))
response = sock.recv(1024).decode('utf-8').strip()
sock.close()
return response
except Exception as e:
print(f"Error connecting to Termbin: {e}")
return None
def publish_to_mozilla(content):
url = 'https://pastebin.mozilla.org/api/'
data = {
'content': content,
'expires': '86400', # 24 hours
'format': 'text',
'lexer': '_text'
}
response = requests.post(url, data=data)
if response.status_code == 200:
return f"https://pastebin.mozilla.org/{response.text}"
return None
def publish_to_paste2(content):
url = 'https://paste2.org/api/create'
data = {
'content': content,
'lang': 'text'
}
response = requests.post(url, data=data)
if response.status_code == 200:
return f"https://paste2.org/{response.text}"
return None
def publish_to_dpaste(content):
url = 'https://dpaste.org/api/'
data = {
'content': content,
'format': 'url'
}
response = requests.post(url, data=data)
if response.status_code == 200:
return response.text.strip()
return None
def publish_to_pasteee(content, api_key):
url = 'https://paste.ee/api/v1/pastes'
headers = {
'X-Auth-Token': api_key
}
data = {
'description': 'File content',
'sections': [{'contents': content}]
}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 201:
return response.json()['link']
return None
def publish_to_multiple_pastebins(file_path, pasteee_api_key=None):
# Read the file content
with open(file_path, 'r') as file:
file_content = file.read()
results = {}
# Publish to Termbin
termbin_url = publish_to_termbin(file_content)
if termbin_url:
results['Termbin'] = termbin_url
# Publish to Mozilla Pastebin
mozilla_url = publish_to_mozilla(file_content)
if mozilla_url:
results['Mozilla Pastebin'] = mozilla_url
# Publish to Paste2
paste2_url = publish_to_paste2(file_content)
if paste2_url:
results['Paste2'] = paste2_url
# Publish to Dpaste
dpaste_url = publish_to_dpaste(file_content)
if dpaste_url:
results['Dpaste'] = dpaste_url
# Publish to Paste.ee (if API key is provided)
if pasteee_api_key:
pasteee_url = publish_to_pasteee(file_content, pasteee_api_key)
if pasteee_url:
results['Paste.ee'] = pasteee_url
return results
# Example usage
file_path = 'test.txt'
#pasteee_api_key = 'YOUR_PASTE_EE_API_KEY' # Optional, remove if not using
results = publish_to_multiple_pastebins(file_path)
for service, url in results.items():
print(f"{service}: {url}")