FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ''' from apscheduler.scheduler import Scheduler from datetime import datetime from sync import SyncAPI from api import localService() import signal slow = Scheduler() fast = Scheduler() sync = SyncAPI() api = localService() global matches = [] @slow.cron_schedule(day_of_week='mon-sun', hour=22, minute=02) def checkForUpdates(): # If there is an update, sync everything print "Checking for updates" @fast.interval_schedule(seconds=60) def updateMatches(): ''' Simple function run locally often. It first checks if there are matches in progress. If there are, for each match in progress, this function calls the syncMatch method from sync.SyncAPI to update it. ''' mip = api.getMatchesInProgressNow()
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ''' import os,Queue,threading,urllib2,tempfile,shutil try: import Image except ImportError: raise ImportError,\ 'PIL is needed to create the sprites. Install python-imaging' from api import localService localService = localService() queue = Queue.Queue() class ThreadUrl(threading.Thread): def __init__(self, queue): ''' This class is based on an example from http://samratjp.posterous.com/a-multi-threaded-python-script-for-downloadin ''' threading.Thread.__init__(self) self.queue = queue def run(self): try: while True: team = self.queue.get() url = urllib2.urlopen(team['iconURL'])