2016-02-14 00:06:36 +01:00
|
|
|
# -*- coding: utf-8 -*-
|
2016-02-15 23:49:09 +01:00
|
|
|
import utils
|
2016-02-14 00:06:36 +01:00
|
|
|
import widgetUtils
|
|
|
|
import messages
|
|
|
|
import buffers
|
2016-02-16 00:49:39 +01:00
|
|
|
import player
|
2016-02-18 00:37:57 +01:00
|
|
|
import posts
|
2016-02-14 00:06:36 +01:00
|
|
|
from pubsub import pub
|
|
|
|
from mysc.repeating_timer import RepeatingTimer
|
2016-02-15 23:49:09 +01:00
|
|
|
from mysc.thread_utils import call_threaded
|
2016-02-14 00:06:36 +01:00
|
|
|
from sessionmanager import session
|
2016-02-15 09:15:38 +01:00
|
|
|
from wxUI import (mainWindow)
|
2016-02-14 00:06:36 +01:00
|
|
|
|
|
|
|
class Controller(object):
|
|
|
|
|
|
|
|
def search(self, tab_name):
|
|
|
|
for i in xrange(0, len(self.buffers)):
|
|
|
|
if self.buffers[i].name == tab_name:
|
|
|
|
return self.buffers[i]
|
|
|
|
return False
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
super(Controller, self).__init__()
|
|
|
|
self.buffers = []
|
2016-02-16 00:49:39 +01:00
|
|
|
player.setup()
|
2016-02-14 00:06:36 +01:00
|
|
|
self.window = mainWindow.mainWindow()
|
|
|
|
self.window.change_status(_(u"Ready"))
|
|
|
|
self.session = session.sessions[session.sessions.keys()[0]]
|
|
|
|
# self.session.authorise()
|
|
|
|
self.create_controls()
|
|
|
|
self.window.Show()
|
|
|
|
|
|
|
|
def create_controls(self):
|
|
|
|
home = buffers.baseBuffer(parent=self.window.tb, name="home_timeline", session=self.session, composefunc="compose_new", endpoint="newsfeed", identifier="id")
|
|
|
|
self.buffers.append(home)
|
|
|
|
self.window.add_buffer(home.tab, _(u"Home"))
|
|
|
|
self.repeatedUpdate = RepeatingTimer(180, self.update_all_buffers)
|
|
|
|
self.repeatedUpdate.start()
|
|
|
|
|
|
|
|
feed = buffers.feedBuffer(parent=self.window.tb, name="me_feed", composefunc="compose_status", session=self.session, endpoint="get", parent_endpoint="wall", identifier="id")
|
|
|
|
self.buffers.append(feed)
|
|
|
|
self.window.add_buffer(feed.tab, _(u"My wall"))
|
|
|
|
audio = buffers.audioBuffer(parent=self.window.tb, name="me_audio", composefunc="compose_audio", session=self.session, endpoint="get", parent_endpoint="audio", full_list=True, identifier="aid")
|
|
|
|
self.buffers.append(audio)
|
|
|
|
self.window.add_buffer(audio.tab, _(u"My audios"))
|
|
|
|
pub.subscribe(self.in_post, "posted")
|
2016-02-15 23:49:09 +01:00
|
|
|
pub.subscribe(self.download, "download-file")
|
2016-02-16 00:49:39 +01:00
|
|
|
pub.subscribe(self.play_audio, "play-audio")
|
2016-02-18 00:37:57 +01:00
|
|
|
pub.subscribe(self.view_post, "open-post")
|
2016-02-14 00:06:36 +01:00
|
|
|
|
|
|
|
def login(self):
|
|
|
|
self.window.change_status(_(u"Logging in VK"))
|
2016-02-15 01:46:23 +01:00
|
|
|
self.session.login()
|
2016-02-14 00:06:36 +01:00
|
|
|
self.window.change_status(_(u"Ready"))
|
|
|
|
for i in self.buffers:
|
|
|
|
if hasattr(i, "get_items"):
|
|
|
|
self.window.change_status(_(u"Loading items for {0}").format(i.name,))
|
|
|
|
i.get_items()
|
|
|
|
self.window.change_status(_(u"Ready"))
|
|
|
|
|
|
|
|
def in_post(self, buffer):
|
|
|
|
buffer = self.search(buffer)
|
|
|
|
buffer.get_items()
|
|
|
|
buffer = self.search("home_timeline")
|
|
|
|
buffer.get_items()
|
|
|
|
|
|
|
|
def update_all_buffers(self):
|
|
|
|
for i in self.buffers:
|
|
|
|
if hasattr(i, "get_items"):
|
|
|
|
i.get_items()
|
2016-02-15 23:49:09 +01:00
|
|
|
print "executed for %s" % (i.name)
|
|
|
|
|
|
|
|
def download(self, url, filename):
|
2016-02-16 00:49:39 +01:00
|
|
|
call_threaded(utils.download_file, url, filename, self.window)
|
|
|
|
|
|
|
|
def play_audio(self, audio_object):
|
|
|
|
call_threaded(player.player.play, audio_object)
|
2016-02-18 00:37:57 +01:00
|
|
|
|
|
|
|
def view_post(self, post_object, controller_):
|
|
|
|
print controller_
|
|
|
|
p = getattr(posts, controller_)(self.session, post_object)
|
|
|
|
p.dialog.get_response()
|