def get_online_tests(): try: vk = VkontakteGroupNewsReader( login.login, login.password, login.group_url ) for i in range(2): vk.get_posts() time.sleep(120) except Exception as e: print e
def get_wall(): """ Возвращает GroupWall. Возможно, закешированный как-нить. В случае ошибки может вернуть None, это обрабатывается в шаблоне. """ # Сейчас дергает сервер при каждом запросе vk = VkontakteGroupNewsReader(login.login, login.password, login.group_url) vk.get_posts() return vk.current_wall_posts
def check_comparasion(): path0 = os.path.normpath( os.path.join( os.getcwd(), "..", "vkontakte_group_small.html" ) ) f0 = open( path0, "r" ) wall0 = VkontakteGroupNewsReader.parse_response(f0) f0.close() path1 = os.path.normpath( os.path.join( os.getcwd(), "..", "vkontakte_group.html" ) ) f1 = open( path1, "r" ) wall1 = VkontakteGroupNewsReader.parse_response(f1) f1.close() wall1.check_for_new_posts_and_comments( wall0 )
def get_hidden_comments(post_id): """ Возвращает набор скрытых комментов для указанного поста. Это тоже надо бы закешировать. """ url = PostInfo.hidden_comments_url(post_id) comments = VkontakteGroupNewsReader.get_hidden_comments(url) return comments
def OnShowHiddenButton(self, event): post_id = event.EventObject.Name.replace('btn_', '') post = self.vk.current_wall_posts.posts[post_id] #показываем или скрываем дополнительные комментарии if not post.hidden_replies_has_shown: post.hidden_replies_has_shown = True hidden_comments = VkontakteGroupNewsReader.get_hidden_comments(post.get_hide_comments_url()) post.prepend_list_of_replies( hidden_comments ) else: post.hidden_replies_has_shown = False post.remove_all_hidden_replies() self.draw_topics()
def __init__(self, parent): self._init_ctrls(parent) self.vk = VkontakteGroupNewsReader(login.login, login.password, login.group_url) self.refresh_posts()
class WallPostsFrame(wx.Frame): def _init_sizers(self): # generated method, don't edit self.bsSizer = wx.BoxSizer(orient=wx.VERTICAL) self.scrolledWindow1.SetSizerAndFit(self.bsSizer) """основное окно программы""" def _init_ctrls(self, prnt): wx.Frame.__init__(self, id=wx.ID_ANY, name=u'GroupNewsReader', title=u'VkontakteGroupReader', parent=prnt, pos=wx.Point(516, 141), size=wx.Size(290, 400), style=wx.MINIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN) self.Center(wx.BOTH) self.SetBackgroundColour('#FFFFFF') self.Bind(wx.EVT_CLOSE, self.exitApp, id=self.Id) self.scrolledWindow1 = wx.ScrolledWindow(id=wx.ID_ANY, name='scrolledWindow1', parent=self, pos=wx.Point(0, 0), style=wx.VSCROLL) self.scrolledWindow1.SetScrollRate( 0, 1 ) self.tbicon = StatusTaskBarIcon(self) self.tbicon.Bind(wx.EVT_MENU, self.exitApp, id=wx.ID_EXIT) self.tbicon.Bind(wx.EVT_MENU, self.refresh_posts, id=wx.ID_REFRESH ) self.timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.refresh_posts, self.timer) self.timer.Start(5 * 60 * 1000) self._init_sizers() def __init__(self, parent): self._init_ctrls(parent) self.vk = VkontakteGroupNewsReader(login.login, login.password, login.group_url) self.refresh_posts() def draw_topics(self): self.bsSizer.Clear(True) for post_id, post in self.vk.current_wall_posts.posts.iteritems(): tp = TopicPanel(self.scrolledWindow1, "post_" + post_id, False, post_id, post.author.name, post.date, post.text, post.author.image_url, None, post.is_new) self.bsSizer.Add(tp, flag=wx.ALIGN_LEFT) #кнопка с дополнительными комментами, если такая имеется if post.hidden_replies_info is not None: if not post.hidden_replies_has_shown: label_str = post.hidden_replies_info else: label_str = u'Скрыть комментарии' btnShowHidden = wx.Button(id=wx.ID_ANY, label=label_str, name="btn_" + post_id, parent=self.scrolledWindow1, style=0) btnShowHidden.Bind(wx.EVT_BUTTON, self.OnShowHiddenButton, id=btnShowHidden.Id) self.bsSizer.Add( btnShowHidden ) for reply_id, reply in post.replies.iteritems(): tp_r = TopicPanel(self.scrolledWindow1, "reply_" + reply_id, True, reply_id, reply.author.name, reply.date, reply.text, reply.author.image_url, post_id, reply.is_new) self.bsSizer.Add(tp_r, flag=wx.LEFT, border=10) self.scrolledWindow1.Layout() def OnShowHiddenButton(self, event): post_id = event.EventObject.Name.replace('btn_', '') post = self.vk.current_wall_posts.posts[post_id] #показываем или скрываем дополнительные комментарии if not post.hidden_replies_has_shown: post.hidden_replies_has_shown = True hidden_comments = VkontakteGroupNewsReader.get_hidden_comments(post.get_hide_comments_url()) post.prepend_list_of_replies( hidden_comments ) else: post.hidden_replies_has_shown = False post.remove_all_hidden_replies() self.draw_topics() def refresh_posts(self, event=None): self.vk.get_posts() self.draw_topics() def exitApp(self,event): self.timer.Stop() self.tbicon.RemoveIcon() self.tbicon.Destroy() sys.exit()