-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.py
89 lines (76 loc) · 2.47 KB
/
script.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import requests
import time
import string
import random
from dotenv import load_dotenv, find_dotenv
from random import randrange
from wget import download
import os
import json
import base64
def get_gif():
'''
This method should get a random gif from Giphy API.
'''
r = requests.get(
'https://api.giphy.com/v1/gifs/random',
params={
'api_key': os.getenv('giphy_api_key'),
}
)
return json.loads(r.text)['data']['images']['original']['url']
def save_gif(gif):
'''
This method saves a gif in /tmp folder
'''
print(gif)
name = f"discord_{randrange(100000000)}.gif"
download(gif, out=f'/tmp/{name}')
return f'/tmp/{name}'
def encode_string(gif_path):
'''
This method receives a path containing a gif file, and encode to base64
in order to generate a datauri
'''
with open(gif_path, 'rb') as img_file:
encoded_string = base64.b64encode(img_file.read())
return f"""data:application/octet-stream;base64,{encoded_string.decode()}"""
def get_gif_path():
'''
Just a marshaller to organize the gif path
'''
gif = get_gif()
return save_gif(gif)
def id_generator(size=16, chars=string.ascii_uppercase + string.digits):
'''
This method generates a random nickname with 16 characters
'''
return ''.join(random.choice(chars) for _ in range(size))
def make_request():
'''
This script makes the "all the fuck"
Calls those methods above and request a patch to Discord API
'''
avatar_path = get_gif_path()
encoded_avatar_string = encode_string(avatar_path)
banner_path = get_gif_path()
encoded_banner_string = encode_string(banner_path)
r = requests.patch(
'https://discordapp.com/api/v9/users/@me',
headers={'authorization': os.getenv('discord_token'), 'content-type': 'application/json'},
data=json.dumps({'username': id_generator(),
'email': os.getenv('discord_email'),
'password': os.getenv('discord_password'),
'avatar': encoded_avatar_string,
'banner': encoded_banner_string,
'discriminator': os.getenv('discord_discriminator'),
'new_password': None}))
if __name__ == "__main__":
load_dotenv(find_dotenv())
if os.getenv('WORKING') == 'luidiblu':
while True:
print('Changing Discord info!')
make_request()
print('\b')
print('Sleeping...')
time.sleep(3600)