Advertisement
stuppid_bot

Untitled

Jul 6th, 2014
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.77 KB | None | 0 0
  1. # -*- coding: utf8 -*-
  2. import re
  3. from lib.vkbot import VKBot
  4. from account import *
  5. vk = VKBot(login, password)
  6. group_id = 52064776
  7. from random import randint
  8.  
  9. import mysql.connector
  10. con = mysql.connector.connect(user='root',
  11.     database='vk_poster',
  12.     raise_on_warnings=True,
  13.     charset='utf8',
  14.     use_unicode=True)
  15. # con.autocommit = True
  16. cur = con.cursor()
  17.  
  18. def get_album_id(genre):
  19.     patterns = (
  20.         (u'(ужас|мисти|триллер)', u'Ужасы и мистика'),
  21.         (u'детектив', u'Детектив'),
  22.         (u'((научная )?фантасти|нф)', u'Фантастика'),
  23.         (u'фэнтези', u'Фэнтези'),
  24.         (u'боевик', u'Боевик'),
  25.         (u'комеди', u'Комедия'),
  26.         (u'(мело)?драма', u'Драма'),
  27.         (u'мульт', u'Мультик'),
  28.         (u'аниме', u'Аниме'),
  29.         (u'(роман|любов)', u'Романтика'),
  30.         (u'(xxx|эро|порн)', u'Для взрослых'),
  31.         (u'приключен', u'Приключения'),
  32.         ('.*', u'Без категории')
  33.     )
  34.     albums = []
  35.     o = 0
  36.     c = 100
  37.     while 1:
  38.         r = vk.api('video.getAlbums', {'offset': o, 'count': c})
  39.         vk.delay(0.5)
  40.         albums += r['items']
  41.         o += c
  42.         if o >= r['count']:
  43.             break
  44.     for pattern, catalog in patterns:
  45.         if re.match(pattern, genre, re.I | re.U):
  46.             break
  47.     for album in albums:
  48.         if album['title'].lower() == catalog.lower():
  49.             return album['id']
  50.     # создаем альбом
  51.     vk.delay(0.5)
  52.     r = vk.api('video.addAlbum', {'title': catalog})
  53.     return r['album_id']
  54.  
  55. def find_video(name, album_id):
  56.     videos = []
  57.     o = 0
  58.     c = 200
  59.     while 1:
  60.         r = vk.api('video.get', {'offset': o, 'count': c, 'album_id': album_id})
  61.         vk.delay(0.5)
  62.         videos += r['items']
  63.         o += c
  64.         if o >= r['count']:
  65.             break
  66.     for video in videos:
  67.         if video['title'].lower() == name.lower():
  68.             return video['id']
  69.  
  70. while 1:
  71.     cur.execute('SELECT * FROM grab_videos WHERE year >= 2010 ORDER BY RAND() LIMIT 1')
  72.     _, vk_oid, vk_vid, name, year, country, genres, director, actors, summary = cur.fetchone()
  73.     name = name.decode('utf8')
  74.     country = country.decode('utf8')
  75.     genres = genres.decode('utf8')
  76.     director = director.decode('utf8')
  77.     actors = actors.decode('utf8')
  78.     summary = summary.decode('utf8')
  79.     text = u'[club%s|►►► Смотри фильмы здесь ◄◄◄]\n' % group_id
  80.     text += u'Название: ' + name + '\n'
  81.     text += u'Год: %s\n' % year
  82.     text += u'Страна: ' + country + '\n'
  83.     text += u'Жанр: #' + ', #'.join( genres.lower().split(', ') ) + '\n'
  84.     if director:
  85.         text += u'Режиссер: ' + director + '\n'
  86.     if actors:
  87.         text += u'В ролях: ' + actors + '\n'
  88.     text += '\n' + summary
  89.     album_id = get_album_id(genres)
  90.     video_id = find_video(name, album_id)
  91.     if not video_id:
  92.         vk.delay(0.5)
  93.         video_id = vk.api('video.add', {'owner_id': vk_oid, 'video_id': vk_vid})
  94.         vk.delay(0.5)
  95.         vk.api('video.moveToAlbum', {'album_id': album_id, 'video_ids': video_id})
  96.         vk.delay(0.5)
  97.         vk.api('video.edit', {'video_id': video_id, 'name': name, 'desc': text})
  98.     vk.delay(0.5)
  99.     post_id = vk.api('wall.post', {'message': text, 'attachments': 'video%s_%s' % (vk.user_id, video_id), 'from_group': 1, 'owner_id': -group_id})['post_id']
  100.     vk.delay(0.5)
  101.     vk.api('wall.repost', {'object': 'wall-%s_%s' % (group_id, post_id)})
  102.     M = randint(15, 30)
  103.     print u'Ждем %s минут' % M
  104.     vk.delay(M * 60)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement