#! /usr/bin/env python ############################################## # Created by Joseph Quigley # # This program is under the GNU GPL Licence # # Either version 2 or any higher version. # # Garfield and the Garfield trade mark are # # Copyrighted by Paws Inc. # ############################################## # Import modules import time import urllib2 import os import sys from Tkinter import * import Image import ImageTk import getpass class Data: # Define time and date todays_date = time.localtime(time.time()) todayDay = time.strftime("%d", todays_date) todayMonth = time.strftime("%m", todays_date) todayYear = time.strftime("%y", todays_date) todayYearFull = time.strftime("%Y", todays_date) getDate = None month = None day = None yearFull = None year = None # More file location junk stripName ="http://images.ucomics.com/comics/ga/2005"# % (yearFull) todayStrip = "ga051009.gif"#ga%s%s%s.gif" % (todayYear, todayMonth, todayDay) otherStrip = None download = None f = None VERSION = '0.9.3' try: if sys.argv[1] == "--version": print """\nGacor %s A Garfield Comic Downloader and reader. Copyright (C) 2005 Joseph Quigley This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n""" % Data.VERSION raise SystemExit except IndexError: print "\n" * 100 user = getpass.getuser() name = 'gacor' if os.name == 'posix': imgDir = '/home/%s/.gacor/' % user elif os.name == 'nt': if os.path.exists('C:\Documents and Settings'): imgDir = "C:\\Documents and Settings\\%s\\.gacor\\" % user if os.path.exists('D:\Documents and Settings'): imgDir = "D:\\Documents and Settings\\%s\\.gacor\\" % user if os.path.exists('E:\Documents and Settings'): imgDir = "E:\\Documents and Settings\\%s\\.gacor\\" % user if os.path.exists('F:\Documents and Settings'): imgDir = "F:\\Documents and Settings\\%s\\.gacor\\" % user if os.path.exists('G:\Documents and Settings'): imgDir = "G:\\Documents and Settings\\%s\\.gacor\\" % user if os.path.exists('H:\Documents and Settings'): imgDir = "H:\\Documents and Settings\\%s\\.gacor\\" % user if os.path.exists('I:\Documents and Settings'): imgDir = "I:\\Documents and Settings\\%s\\.gacor\\" % user if os.path.exists('J:\Documents and Settings'): imgDir = "J:\\Documents and Settings\\%s\\.gacor\\" % user if os.path.exists('K:\Documents and Settings'): imgDir = "K:\\Documents and Settings\\%s\\.gacor\\" % user else: setImgDir = raw_input("Please specify your Documents and Settings Drive\n(eg: C:\\ not C)\n> ") imgDir = "%sDocuments and Settings\\%s\\.gacor\\" % user if not os.path.exists(imgDir): os.mkdir(imgDir) def Connect(): print "Connecting to server..." try: Data.f = urllib2.urlopen("%s/%s" % (Data.stripName, Data.todayStrip)) except urllib2.URLError: print """Temporary failure in name resolution. This means that you may not be online or the site is down. You may want to try again later.\n\n This could also mean that you have entered a bad date in gettoher.""" print "\n\nProgram will quit in 3 seconds." time.sleep(3) raise SystemExit print "Connected." def Dsp_Image(pic): root = Tk() root.title("GaCoR (Garfield Comic Reader)") app = Frame(root) app.grid() img = Image.open(pic) imgPrep = ImageTk.PhotoImage(img) imgShow = Label(app, image=imgPrep).grid() info = Label(app, text="Displaying a Garfield for %s\%s\%s." % (Data.month, Data.day, Data.year)).grid() app.mainloop() def getImg(pic): print "Dowloading Image" Data.f.geturl() pict_Data = Data.f.read() pict = file("%s" % (pic), 'w') pict.write(pict_Data) pict.close() print "Finished Download" def ShowImg(pic): Dsp_Image("%s%s" % (imgDir, pic)) def comicDate(): while True: print "\nEnter comic date in mmddyyyy format (eg: 09122002 " Data.getDate = list(raw_input("> ")) if len(Data.getDate) > 8: print "Too many numbers! But I'll let this go." try: Data.month = Data.getDate[0] + Data.getDate[1] except IndexError: print "You didn't fill in all 2 digits in for the month!\n" continue try: Data.day = Data.getDate[2] + Data.getDate[3] except IndexError: print "You didn't fill in all 2 digits in for the day!\n" continue try: Data.yearFull = Data.getDate[4] + Data.getDate[5] + Data.getDate[6] + Data.getDate[7] except IndexError: print "You didn't fill in all 4 digits in for the year!\n" continue Data.year = Data.getDate[6] + Data.getDate[7] break def help(): print """-- Help -- Commands: gettoday -- get today's strip getother -- get some other date's strip license -- view the GNU General Public License (GPL) quit -- Quit Program If you find any bugs (most likely crashes) please report them to: cpu.crazy@gmail.com Current version of software: %s Gacor %s A Garfield Comic Downloader and reader. Copyright (C) 2005 Joseph Quigley This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Garfield (tm) and the Garfield (tm) trade mark are Copyrighted by Paws Inc.""" % (Data.VERSION, Data.VERSION) def license(): print "\n" * 10 while True: try: f = file("%slicense.txt" % imgDir, 'r') except IOError: print "The license file can not be found. You may download it from:\n\ \thttp://www.gnu.org/licenses/gpl.txt" print "Press enter to view more or the Ctrl C keys to go back to the main menu." text = f.readlines() length = len(text) line = 0 while True: if line == length: break else: print text[line], try: raw_input(), except KeyboardInterrupt: break line = line + 1 break while True: try: m_m = raw_input("\n\nType 'h' for help\nMain Menu> ") except KeyboardInterrupt: raise SystemExit except TypeError: raise SystemExit if m_m == 'h': help() elif m_m == 'license': license() elif m_m == 'quit': raise SystemExit elif m_m == 'gettoday': Data.yearFull = Data.todayYearFull Data.year = Data.todayYear Data.month = Data.todayMonth Data.day = Data.todayDay print Data.yearFull, Data.year, Data.month, Data.day try: f = file("%s%s" % (imgDir, Data.todayStrip), 'r') except IOError: Connect() getImg(Data.todayStrip) ShowImg(Data.todayStrip) f.close() elif m_m == "getother": comicDate() Data.otherStrip = "ga%s%s%s.gif" % (Data.year, Data.month, Data.day) try: Data.f = file("%s%s" % (imgDir, Data.otherStrip), 'r') except IOError: Connect() getImg(Data.otherStrip) ShowImg(Data.otherStrip) Data.f.close()