Esempio n. 1
0
def read_data_file():
    info( s[ 'dat-fl-rd' ] )

    try:
        with open( name=DATA_FILE, mode='r' ) as f:
            return_list = []

            for line in f.readlines():
                try:
                    new_art = Article()
                    new_art.__dict__ = loads( line )
                    return_list.append( new_art )
                except ValueError:
                    error( 'Problem reading data entry.' )
                    continue
    except IOError:
        error( 'Couldn\'t read datafile.' )
        return []

    return return_list
Esempio n. 2
0
    def on_add_article( self, widget ):
        if type( widget ) == gtk.Button:
            textbox = self.add_textbox
            pos_label = textbox.get_parent().get_children()[2]

            textbox.set_visible( not textbox.get_visible() )
            pos_label.set_visible( not pos_label.get_visible() )

            if textbox.get_visible():
                return

            url = textbox.get_text()
            textbox.set_text( '' )

        elif type( widget ) == gtk.MenuItem:
            url = gtk.Clipboard().wait_for_text()
            if url is None:
                warning( 'Couldn\'t add article: Clipboard was empty.' )
                osd_notify( 'Couldn\'t add article: Clipboard was empty.' )
                return

        art = Article( url )

        if art.url in self.articles:
            warning( 'Article already in the database' )
            osd_notify( 'Article already in the database' )
            return

        art.update()

        if art.bad_conn:
            error( s[ 'err-con-s' ] )
            osd_notify( s[ 'err-con-s' ] )
            return
        elif art.bad_url:
            error( 'Couldn\'t parse the url.' )
            osd_notify( 'Couldn\'t parse the url.' )
            return

        self.refresh_thread.stop()

        download_image( url=art.pic_url, dest=IMAGE_PATH + art.pic_name )

        self.refresh_thread.join()

        self.articles[ art.url ] = art

        try:
            with open( DATA_FILE, 'a' ) as data_file:
                data_file.write( dumps( art.__dict__ ) )
                data_file.write( '\n' )
        except IOError:
            error( 'Couldn\'t write to data file.' )
            osd_notify( 'Couldn\'t write to data file.' )

        self.data_store.append( [ False,
                                  art.currency,
                                  art.price,
                                  art.min,
                                  art.avg,
                                  art.max,
                                  art.name,
                                  art.url,
                                  ] )

        osd_notify( 'Successfully added article.', art.name, IMAGE_PATH + art.pic_name )

        self.update_list_store()

        self.start_thread()