From 85310b8eb244fc0be1862217ec22aa66b72a5500 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Tue, 22 Dec 2009 12:07:36 +0000 Subject: [PATCH] fix twitter management --- deefuzzer.py | 75 +++++++++++++++++----------------- tools/__init__.py | 2 +- tools/osc_twitter_start.py | 14 +++++++ tools/osc_twitter_stop.py | 14 +++++++ tools/{twitter.py => twitt.py} | 6 +-- 5 files changed, 68 insertions(+), 43 deletions(-) create mode 100644 tools/osc_twitter_start.py create mode 100644 tools/osc_twitter_stop.py rename tools/{twitter.py => twitt.py} (95%) diff --git a/deefuzzer.py b/deefuzzer.py index 1b4d6a9..c6f4177 100755 --- a/deefuzzer.py +++ b/deefuzzer.py @@ -45,10 +45,11 @@ import random import Queue import shout import platform +import tinyurl from threading import Thread from tools import * -version = '0.3.6' +version = '0.4' year = datetime.datetime.now().strftime("%Y") platform_system = platform.system() @@ -257,6 +258,23 @@ class Station(Thread): if not os.path.exists(self.metadata_dir): os.makedirs(self.metadata_dir) + # A jingle between each media + self.jingles_mode = 0 + if 'jingles' in self.station: + self.jingles_mode = int(self.station['jingles']['mode']) + self.jingles_shuffle = self.station['jingles']['shuffle'] + self.jingles_dir = self.station['jingles']['dir'] + if self.jingles_mode == 1: + self.jingles_list = self.get_jingles() + self.jingles_length = len(self.jingles_list) + self.jingle_id = 0 + + # Relay + self.relay_mode = 0 + if 'relay' in self.station: + self.relay_mode = int(self.station['relay']['mode']) + self.relay_url = self.station['relay']['url'] + # OSC self.osc_control_mode = 0 if 'control' in self.station: @@ -268,37 +286,18 @@ class Station(Thread): # OSC paths and callbacks self.osc_controller.add_method('/media/next', 'i', self.media_next_callback) self.osc_controller.add_method('/media/relay', 'i', self.relay_callback) - self.osc_controller.add_method('/mode/twitter', 'i', self.twitter_callback) - self.osc_controller.add_method('/mode/jingles', 'i', self.jingles_callback) + self.osc_controller.add_method('/twitter', 'i', self.twitter_callback) + self.osc_controller.add_method('/jingles', 'i', self.jingles_callback) # Twitter self.twitter_mode = 0 + self.tinyurl = tinyurl.create_one(self.channel.url + '/m3u/' + self.m3u.split(os.sep)[-1]) if 'twitter' in self.station: self.twitter_mode = int(self.station['twitter']['mode']) self.twitter_user = self.station['twitter']['user'] self.twitter_pass = self.station['twitter']['pass'] - if self.twitter_mode == 1: - self.twitter = Twitter(self.twitter_user, self.twitter_pass) - self.twitter_tags = self.station['twitter']['tags'].split(' ') - import tinyurl - self.tinyurl = tinyurl.create_one(self.channel.url + '/m3u/' + self.m3u.split(os.sep)[-1]) - - # A jingle between each media - self.jingles_mode = 0 - if 'jingles' in self.station: - self.jingles_mode = int(self.station['jingles']['mode']) - self.jingles_shuffle = self.station['jingles']['shuffle'] - self.jingles_dir = self.station['jingles']['dir'] - if self.jingles_mode == 1: - self.jingles_list = self.get_jingles() - self.jingles_length = len(self.jingles_list) - self.jingle_id = 0 - - # Relay - self.relay_mode = 0 - if 'relay' in self.station: - self.relay_mode = int(self.station['relay']['mode']) - self.relay_url = self.station['relay']['url'] + self.twitter_tags = self.station['twitter']['tags'].split(' ') + self.twitter = Twitter(self.twitter_user, self.twitter_pass) # The station's player self.player = Player() @@ -385,8 +384,9 @@ class Station(Thread): song = artist + ' : ' + title song = song.encode('utf-8') artist = artist.encode('utf-8') - message = 'New track ! %s #%s #%s' % (song.replace('_', ' '), artist.replace(' ', ''), self.short_name) - self.update_twitter(message) + if self.twitter_mode == 1: + message = 'New track ! %s #%s #%s' % (song.replace('_', ' '), artist.replace(' ', ''), self.short_name) + self.update_twitter(message) if self.mode_shuffle == 1: # Shake it, Fuzz it ! @@ -396,7 +396,7 @@ class Station(Thread): ' : generating new playlist (' + str(self.lp) + ' tracks)') self.update_rss(self.media_to_objs(self.playlist), self.rss_playlist_file, '(playlist)') - if self.jingles_mode == '1' and (self.counter % 2) == 0 and not self.jingles_length == 0: + if self.jingles_mode == 1 and (self.counter % 2) == 0 and not self.jingles_length == 0: media = self.jingles_list[self.jingle_id] self.jingle_id = (self.jingle_id + 1) % self.jingles_length else: @@ -487,13 +487,12 @@ class Station(Thread): f.close() def update_twitter(self, message): - if self.twitter_mode == '1': - tags = '#' + ' #'.join(self.twitter_tags) - message = message + ' ' + tags - message = message[:113] + ' ' + self.tinyurl - message = message.decode('utf8') - self.logger.write('Twitting : "' + message + '"') - self.twitter.post(message) + tags = '#' + ' #'.join(self.twitter_tags) + message = message + ' ' + tags + message = message[:113] + ' ' + self.tinyurl + message = message.decode('utf8') + self.logger.write('Twitting : "' + message + '"') + self.twitter.post(message) def run(self): while True: @@ -528,13 +527,13 @@ class Station(Thread): self.update_rss(self.current_media_obj, self.metadata_file, '') self.channel.set_metadata({'song': self.song, 'charset': 'utf8',}) self.update_rss(self.current_media_obj, self.rss_current_file, '(currently playing)') - self.logger.write('DeeFuzzing this file on %s : id = %s, name = %s' \ + self.logger.write('Deefuzzing this file on %s : id = %s, name = %s' \ % (self.short_name, self.id, self.current_media_obj[0].file_name)) self.player.set_media(self.media) self.stream = self.player.file_read_slow() - if not (self.jingles_mode == 1 and (self.counter % 2) == 1): - message = 'Now playing: %s #%s #%s' % (self.song.replace('_', ' '), self.artist.replace(' ', ''), self.short_name) + if (not (self.jingles_mode == 1 and (self.counter % 2) == 1)) and self.twitter_mode == 1: + message = 'Now playing : %s #%s #%s' % (self.song.replace('_', ' '), self.artist.replace(' ', ''), self.short_name) self.update_twitter(message) self.q.task_done() diff --git a/tools/__init__.py b/tools/__init__.py index f103ac3..d2e383d 100644 --- a/tools/__init__.py +++ b/tools/__init__.py @@ -6,5 +6,5 @@ from ogg import * from logger import * from player import * from osc import * -from twitter import * +from twitt import * from relay import * diff --git a/tools/osc_twitter_start.py b/tools/osc_twitter_start.py new file mode 100644 index 0000000..c298be6 --- /dev/null +++ b/tools/osc_twitter_start.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import liblo, sys + +# send all messages to port 1234 on the local machine +try: + target = liblo.Address(1234) +except liblo.AddressError, err: + print str(err) + sys.exit() + +# send message "/foo/message1" with int, float and string arguments +liblo.send(target, "/twitter", 1) diff --git a/tools/osc_twitter_stop.py b/tools/osc_twitter_stop.py new file mode 100644 index 0000000..3470fcc --- /dev/null +++ b/tools/osc_twitter_stop.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import liblo, sys + +# send all messages to port 1234 on the local machine +try: + target = liblo.Address(1234) +except liblo.AddressError, err: + print str(err) + sys.exit() + +# send message "/foo/message1" with int, float and string arguments +liblo.send(target, "/twitter", 0) diff --git a/tools/twitter.py b/tools/twitt.py similarity index 95% rename from tools/twitter.py rename to tools/twitt.py index 6451116..a03907c 100644 --- a/tools/twitter.py +++ b/tools/twitt.py @@ -45,8 +45,6 @@ class Twitter: self.api = twitter.Api(username=self.username, password=self.password) def post(self, message): - try: - self.api.PostUpdate(message) - except: - pass + self.api.PostUpdate(message) + -- 2.39.5