Skip to content

Commit

Permalink
minor fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
prehensile committed Jun 5, 2012
1 parent 7e3e7dc commit 572dfd3
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 23 deletions.
9 changes: 8 additions & 1 deletion botrunner.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import skypebot
from messages import housekeeping
import subprocess
import logging
import time

# set up logging
logging.basicConfig( filename="skypebot.log", level=logging.INFO, filemode='w' )
Expand Down Expand Up @@ -36,10 +38,12 @@
hookserver_message = None
run_outer = True
while run_outer:
logging.info( "Entering outer runloop, starting bot thread..." )
# init & start new bot thread
bot_thread = skypebot.BotThread()
bot_thread.start()
run_inner = True
logging.info( "Entering inner runloop..." )
while( run_inner ):
hookserver_message = hook_server.pop_message()
if hookserver_message is not None:
Expand All @@ -58,13 +62,16 @@
subprocess.call( [ "git", "pull" ] )
# reload skypebot module
skypebot = reload( skypebot )
time.sleep( 1 )

except KeyboardInterrupt:
pass
logging.info( "KeyboardInterrupt!" )

# shut down threads cleanly
if bot_thread.is_running:
logging.info( "Shutdown bot thread..." )
bot_thread.stop()
logging.info( "Shutdown hook server..." )
hook_server.stop()

logging.shutdown()
5 changes: 3 additions & 2 deletions queuedthread.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@ class QueuedThread( threading.Thread ):
def __init__(self):
self._queue = Queue.Queue()
self._abortflag = False
super( QueuedThread, self ).__init__()

def stop( self ):
self._abortflag = True

@property
def is_running( self ):
return !self._abortflag
return not self._abortflag

@property
def queue(self):
Expand All @@ -24,7 +25,7 @@ def put_message( self, message ):
def pop_message( self ):
message = None
try:
message = queue.get( False )
message = self._queue.get( False )
except Queue.Empty:
pass
return message
11 changes: 11 additions & 0 deletions skypebot.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
INFO:root:Staring up github HookServer...
INFO:root:Entering outer runloop, starting bot thread...
INFO:root:Starting up Twitter connector...
INFO:root:Attaching to Skype...
INFO:Skype4Py.skype.Skype:object created
INFO:root:Entering inner runloop...
INFO:Skype4Py.api.darwin.SkypeAPI:opened
INFO:Skype4Py.skype.Skype:object destroyed
INFO:root:KeyboardInterrupt!
INFO:root:Shutdown bot thread...
INFO:root:Shutdown hook server...
9 changes: 6 additions & 3 deletions skypebot.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
import json
import sys
import logging

import twitterconnector
from hookserver import HookServerMessage
import queuedthread
import time

class ChatHandler(object):

Expand Down Expand Up @@ -89,7 +89,7 @@ def run( self ):
skype.Attach()

logging.info( "Entering main run loop..." )
while not self._abortflag
while not self._abortflag:
try:
if RUN_SKYPE:
# maintain list of chats
Expand Down Expand Up @@ -150,4 +150,7 @@ def run( self ):
except Exception, e:
logging.info( e )
print e
time.sleep( 1 )
time.sleep(1)
except Exception, e:
logging.info( e )
print e
45 changes: 28 additions & 17 deletions twitterconnector.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,36 @@
import os

class TwitterConnector( object ):
def __init__( self, creds_path ):
def __init__( self, creds_path ):

fh = open( os.path.join( creds_path, 'consumer_token' ), 'r' )
consumer_key, consumer_secret = fh.read().split(",")
fh.close()
self.api = None
error = None

fh = open( os.path.join( creds_path, 'access_token' ), 'r' )
key, secret = fh.read().split(",")
fh.close()
try:
fh = open( os.path.join( creds_path, 'consumer_token' ), 'r' )
consumer_key, consumer_secret = fh.read().split(",")
fh.close()
except IOError, e:
error = e

auth = tweepy.OAuthHandler( consumer_key, consumer_secret )
auth.set_access_token( key, secret )
self.api = tweepy.API( auth )
try:
fh = open( os.path.join( creds_path, 'access_token' ), 'r' )
key, secret = fh.read().split(",")
fh.close()
except IOError, e:
error = e

self.name = self.api.me().screen_name
if error is None:
auth = tweepy.OAuthHandler( consumer_key, consumer_secret )
auth.set_access_token( key, secret )
self.api = tweepy.API( auth )

def tweet( self, message ):
if message.startswith( "/me" ):
message = message[3:]
message = message.lstrip()
self.api.update_status( message )
self.name = self.api.me().screen_name

def tweet( self, message ):
if self.api:
if message.startswith( "/me" ):
message = message[3:]
message = message.lstrip()
self.api.update_status( message )

0 comments on commit 572dfd3

Please sign in to comment.