Add files via upload
This commit is contained in:
parent
6f0a2d4354
commit
624476c6f4
2 changed files with 116 additions and 0 deletions
1
cookie.txt
Normal file
1
cookie.txt
Normal file
|
@ -0,0 +1 @@
|
|||
ENTER_YOUR_COOKIE_HERE
|
115
main.py
Normal file
115
main.py
Normal file
|
@ -0,0 +1,115 @@
|
|||
import sys
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
import json
|
||||
import time
|
||||
import threading
|
||||
from requests import RequestException
|
||||
|
||||
try:
|
||||
file = open('cookie.txt', 'r')
|
||||
cook = file.readline()
|
||||
if len(cook) == 0:
|
||||
print('There is no cookie in cookie.txt file')
|
||||
time.sleep(30)
|
||||
sys.exit(0)
|
||||
except FileNotFoundError:
|
||||
print('Cant find cookie.txt file')
|
||||
time.sleep(30)
|
||||
sys.exit(0)
|
||||
|
||||
timeout = 900
|
||||
|
||||
|
||||
def get_page():
|
||||
global soup, xsrf_token, cookies, points
|
||||
|
||||
try:
|
||||
url = 'https://www.steamgifts.com'
|
||||
cookies = {'PHPSESSID': cook}
|
||||
r = requests.get(url, cookies=cookies)
|
||||
soup = BeautifulSoup(r.text, 'html.parser')
|
||||
|
||||
xsrf_token = soup.find('input', {'name': 'xsrf_token'})['value']
|
||||
points = soup.find('span', {'class': 'nav__points'}).text # storage points
|
||||
except RequestException:
|
||||
print('Cant connect to the site')
|
||||
print('Waiting 2 minutes and reconnect...')
|
||||
time.sleep(120)
|
||||
get_page()
|
||||
except TypeError:
|
||||
print('Cant recognize your cookie value.')
|
||||
time.sleep(30)
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
# get codes of the games
|
||||
def get_games():
|
||||
global game_name
|
||||
gifts_list = soup.find_all(lambda tag: tag.name == 'div' and tag.get('class') == ['giveaway__row-inner-wrap'])
|
||||
|
||||
for item in gifts_list:
|
||||
if int(points) == 0:
|
||||
print('> Sleeping to get 6 points')
|
||||
time.sleep(timeout)
|
||||
get_games()
|
||||
break
|
||||
|
||||
game_cost = item.find_all('span', {'class': 'giveaway__heading__thin'})
|
||||
|
||||
last_div = None
|
||||
for last_div in game_cost:
|
||||
pass
|
||||
if last_div:
|
||||
game_cost = last_div.getText().replace('(', '').replace(')', '').replace('P', '')
|
||||
|
||||
game_name = item.find('a', {'class': 'giveaway__heading__name'}).text
|
||||
|
||||
if int(points) - int(game_cost) < 0:
|
||||
print('Not enough points to enter: ' + game_name)
|
||||
continue
|
||||
elif int(points) - int(game_cost) > 0:
|
||||
entry_gift(item.find('a', {'class': 'giveaway__heading__name'})['href'].split('/')[2])
|
||||
|
||||
print('List of games is ended. Waiting 2 min to update...')
|
||||
time.sleep(120)
|
||||
get_page()
|
||||
get_games()
|
||||
|
||||
|
||||
def entry_gift(code):
|
||||
payload = {'xsrf_token': xsrf_token, 'do': 'entry_insert', 'code': code}
|
||||
entry = requests.post('https://www.steamgifts.com/ajax.php', data=payload, cookies=cookies)
|
||||
json_data = json.loads(entry.text)
|
||||
|
||||
get_page()
|
||||
# print(json_data)
|
||||
|
||||
# updating points after entered a giveaway
|
||||
if json_data['type'] == 'success':
|
||||
print('> Bot has entered giveaway: ' + game_name)
|
||||
time.sleep(5)
|
||||
|
||||
|
||||
def inputs_data():
|
||||
global timeout
|
||||
|
||||
while 1:
|
||||
cmd = input().split()
|
||||
if cmd == '!help':
|
||||
print(' [ HELP BOX ]')
|
||||
print('!sleep [arg]\t- change a sleeping interval in sec (default is 900 sec)')
|
||||
if len(cmd) == 1:
|
||||
print('!help to see available commands')
|
||||
if cmd[0] == '!sleep':
|
||||
try:
|
||||
timeout = int(cmd[1])
|
||||
except ValueError:
|
||||
print('Expecting a digit!')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
thread = threading.Thread(target=inputs_data)
|
||||
thread.start()
|
||||
get_page()
|
||||
get_games()
|
Loading…
Reference in a new issue