Well, I'm back to coding more on my comic downloader and viewer and I keep getting this error:

Traceback (most recent call last):
  File "F:\Gacor\getgarf.py", line 244, in ?
    getImg(Data.todayStrip)
  File "F:\Gacor\getgarf.py", line 127, in getImg
    Data.f.geturl()
AttributeError: 'str' object has no attribute 'geturl'

My code is attached (sorry, but it's got lot's of text)
#! /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 = ''
    month = ''
    day = ''
    yearFull = ''
    year = ''    
    
    # More file location junk
    stripName ="http://images.ucomics.com/comics/ga/%s/"; % (yearFull)
    todayStrip = "ga%s%s%s.gif" % (todayYear, todayMonth, todayDay)
    otherStrip = ""
    download = ""
    f = ""
    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)


# Errors
def Connect():
    urllib2_URLError = """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."""
    print "Connecting to server..."
    try:
       Data.f = urllib2.urlopen("%s%s" % (Data.stripName, Data.todayStrip))
    except  urllib2.URLError:
       print urllib2_URLError
    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"
    print Data.f
    Data.f.geturl()
    pict_Data = Data.f.read()
    pict = file("%s%s" % (imgDir, 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:
    [EMAIL PROTECTED]

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
        try:
            f = file("%s%s" % (imgDir, Data.todayStrip), 'r')
        except IOError:
            Connect()
            print Data.f
            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()
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to