class Plugin(PluginBase): _description = "Playing youtube video" _authors = { 'James Axl' : '*****@*****.**' } def __init__(self): PluginBase.__init__(self) def start(self, session): self.session = session self.session.signals.conv_message.subscribe(self._on_message) self.watch=WatchVideo() return True def stop(self): self.session.signals.conv_message.unsubscribe(self._on_message) return False def configurable(self): return False def check_url(self,cid, account, msg): s = msg l=re.findall(r'(http?://www.youtube.com/watch\S+)', s) if len(l) >= 1: msg_text=l[0] url_data = urlparse.urlparse(msg_text) query = urlparse.parse_qs(url_data.query) video_id = query["v"][0] if video_id: try: src = BeautifulSoup.BeautifulSoup(urllib.urlopen("http://www.youtube.com/watch?v=%s"%video_id)) title=src.title.string.split('\n')[1].strip() urllib.urlretrieve ("http://img.youtube.com/vi/%s/hqdefault.jpg"%video_id,tempfile.gettempdir()+"/%s.jpg"%video_id) image=tempfile.gettempdir()+"/%s.jpg"%video_id if self.watch.bl: self.watch.set_video(title,"http://www.youtube.com/v/%s"%video_id,image,account) else: self.watch.init_info() self.watch.set_video(title,"http://www.youtube.com/v/%s"%video_id,image,account) self.watch.win_show() except NameError: warn="""<P><B>BeautifulSoup</B> is required by youtube plugin please run <B>easy_install BeautifulSoup</B> or <B>pip install BeautifulSoup</B> </P> """ url=e3.Message(e3.Message.TYPE_INFO, warn,account,timestamp=None) self.session.gui_message(cid, account, url) def _on_message(self, cid, account, message, cedict=None): user = self.session.contacts.get(account) msg_text=message.body message=e3.Message(e3.Message.TYPE_INFO, msg_text,account,timestamp=None) self.check_url(cid, account, message.body)
def start(self, session): self.session = session self.session.signals.conv_message.subscribe(self._on_message) self.watch=WatchVideo() return True