Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # -*- coding: UTF-8 -*-
- import sys
- import json
- import random
- import requests
- from urllib.request import urlopen, urlretrieve
- from html2text import html2text
- import vk
- TOKEN = ''
- GROUP_ID = '98015944'
- BOARDS = ['au', 'bi', 'biz', 'bo', 'c', 'em', 'fa', 'fiz', 'fl', 'ftb', 'hh',
- 'hi', 'me', 'mg', 'mlp', 'mo', 'mov', 'mu', 'ne', 'psy', 're', 'sci',
- 'sf', 'sn', 'sp', 'spc', 'tv', 'un', 'w', 'wh', 'wm', 'wp', 'di',
- 'diy', 'mus', 'pa', 'p', 'wrk', 'gd', 'hw', 'mobi', 'pr', 'ra', 's',
- 't', 'bg', 'cg', 'es', 'mmo', 'moba', 'tes', 'vg', 'wr', 'a', 'fd',
- 'ja', 'ma', 'vn', 'd', 'b', 'soc', 'media', 'r', 'abu', 'rf', 'fg',
- 'fur', 'g', 'ga', 'h', 'ho', 'e', 'fet', 'sex', 'fag', 'po', 'wn'] # remove 'hc', 'd'
- def load_json(url):
- data = urlopen(url).read().decode('utf-8', 'ignore')
- return(json.loads(data))
- def top_tread(board):
- url = ('https://2ch.hk/%s/threads.json' % (board))
- jdata = load_json(url)
- max_score = (max(jdata['threads'], key=lambda x: x['score']))
- tread = max_score['num']
- score = ('[Просм. %s, рейтинг %s]' % (max_score['views'], max_score['score']))
- return(tread, score)
- def tread_data(board, tread):
- url = ('https://2ch.hk/%s/res/%s.json' % (board, tread))
- jdata = load_json(url)
- board_name = ('/%s/ %s' % (board, jdata['BoardName']))
- tread_title = html2text(jdata['title'])
- tread_title = tread_title.rstrip('\n')
- op_post = html2text(jdata['threads'][0]['posts'][0]['comment'])
- op_pic = jdata['threads'][0]['posts'][0]['files'][0]['path']
- op_pic = ('https://2ch.hk/%s/%s' % (board, op_pic))
- return(board_name, tread_title, op_post, op_pic)
- def post_vk(text, url, op_pic):
- urlretrieve(op_pic, 'pic.jpg')
- vkapi = vk.API(access_token=TOKEN)
- server = vkapi.photos.getWallUploadServer(group_id=GROUP_ID)
- req = requests.post(server['upload_url'], files={'photo': open('pic.jpg', "rb")})
- req = req.json()
- print(req)
- data = vkapi.photos.saveWallPhoto(group_id='98015944', photo=req['photo'],
- server=req['server'], hash=req['hash'])
- img_url = ('photo%s_%s,%s' % (data[0]['owner_id'], data[0]['id'], url))
- post = vkapi.wall.post(owner_id='-98015944', from_group='1', message=text, attachments=img_url)
- print(post)
- def main():
- if len(sys.argv) <= 1:
- board = random.choice(BOARDS)
- else:
- board = sys.argv[1]
- print('Board:', board)
- tread, score = top_tread(board)
- board_name, tread_title, op_post, op_pic = tread_data(board, tread)
- if tread_title in op_post:
- text = ('%s\n%s\n%s' % (board_name, score, op_post))
- else:
- text = ('%s\n%s\n%s\n%s' % (board_name, tread_title, score, op_post))
- print(text)
- tread_url = ('https://2ch.hk/%s/res/%s.html' % (board, tread))
- post_vk(text, tread_url, op_pic)
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment