From: Yoann G. <jj...@us...> - 2004-09-27 13:04:23
|
Update of /cvsroot/ngetsuite/ngetsuite/ngetsuite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30103/ngetsuite Modified Files: core.rb downloader.rb downloadmanager.rb group.rb nfo.rb Log Message: misc fixes Index: nfo.rb =================================================================== RCS file: /cvsroot/ngetsuite/ngetsuite/ngetsuite/nfo.rb,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** nfo.rb 3 Sep 2004 10:42:59 -0000 1.8 --- nfo.rb 27 Sep 2004 13:04:05 -0000 1.9 *************** *** 18,21 **** --- 18,22 ---- raise NoSuchNfoException.new(n) end + return v end Index: downloadmanager.rb =================================================================== RCS file: /cvsroot/ngetsuite/ngetsuite/ngetsuite/downloadmanager.rb,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** downloadmanager.rb 25 May 2004 22:41:59 -0000 1.25 --- downloadmanager.rb 27 Sep 2004 13:04:05 -0000 1.26 *************** *** 32,58 **** log 'Starting manager' @mainThread = Thread.new { ! begin ! loop do break unless @started log "current : #{@current_dlers}, max : #{@max_dlers}" if @lastlog_current != @current_dlers or @lastlog_max != @max_dlers @lastlog_current, @lastlog_max = @current_dlers, @max_dlers ! if (@current_dlers < @max_dlers) ! start_new_downloader ! end break unless @started check_finished_dls break unless @started sleep(@poll_interval) end - rescue Exception => e - puts "Exception : #{e} => #{e.message}" - print e.backtrace.join("\n") - rescue Error => e - puts 'Error : ' + e - print e.backtrace.join("\n") - rescue DBI::DatabaseError => e - puts 'An error occurred' - puts 'Error code: ' + e.err - puts 'Error message: ' + e.errstr end } --- 32,56 ---- log 'Starting manager' @mainThread = Thread.new { ! loop do ! begin break unless @started log "current : #{@current_dlers}, max : #{@max_dlers}" if @lastlog_current != @current_dlers or @lastlog_max != @max_dlers @lastlog_current, @lastlog_max = @current_dlers, @max_dlers ! start_new_downloader if (@current_dlers < @max_dlers) break unless @started check_finished_dls break unless @started sleep(@poll_interval) + rescue DBI::DatabaseError => e + puts 'An error occurred' + puts 'Error code: ' + e.err + puts 'Error message: ' + e.errstr + puts 'Waiting 10mn' + sleep 600 + rescue Exception => e + puts "Exception : #{e}" + puts e.backtrace + break end end } Index: downloader.rb =================================================================== RCS file: /cvsroot/ngetsuite/ngetsuite/ngetsuite/downloader.rb,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** downloader.rb 15 Sep 2004 13:29:37 -0000 1.38 --- downloader.rb 27 Sep 2004 13:04:05 -0000 1.39 *************** *** 52,62 **** part, size, speed, filenb = $2, $7, $9, $12 ldebug "#{green $5+'L'}(#{green $7+'B'}) at #{$9+'B/s'} [#{blue $2}/#{blue $3}] [#{yellow $11}/#{yellow $12}]", false ! @curfile.update(part, speed, filenb, size) when /^uu_msg\(\d+\):Loaded from (.*): '.*' \((.*)\): (.*) part (\d+)\s+begin\s+(?:end\s+)?(yEnc|UUdata|Base64|XXdata|BinHex|plaintext|qptext|unknown)$/ artfile, base, filename, nb, enc = $1, $2, $3, $4, $5 ldebug "#{blue 'Decoding'} #{filename} (encoding : #{enc})", false ! @curfile._filename = filename ! @curfile.encoding = enc when /^uu_msg\(\d+\):Loaded from (.*): '.*' \(.*\):.*part (\d+)\s+end\s+(yEnc|UUdata|Base64|XXdata|BinHex|plaintext|qptext|unknown)$/ --- 52,62 ---- part, size, speed, filenb = $2, $7, $9, $12 ldebug "#{green $5+'L'}(#{green $7+'B'}) at #{$9+'B/s'} [#{blue $2}/#{blue $3}] [#{yellow $11}/#{yellow $12}]", false ! @curfile.update(part, speed, filenb, size) if @curfile when /^uu_msg\(\d+\):Loaded from (.*): '.*' \((.*)\): (.*) part (\d+)\s+begin\s+(?:end\s+)?(yEnc|UUdata|Base64|XXdata|BinHex|plaintext|qptext|unknown)$/ artfile, base, filename, nb, enc = $1, $2, $3, $4, $5 ldebug "#{blue 'Decoding'} #{filename} (encoding : #{enc})", false ! @curfile._filename = filename if @curfile ! @curfile.encoding = enc if @curfile when /^uu_msg\(\d+\):Loaded from (.*): '.*' \(.*\):.*part (\d+)\s+end\s+(yEnc|UUdata|Base64|XXdata|BinHex|plaintext|qptext|unknown)$/ *************** *** 68,72 **** when /^uu_msg\(\d+\):Loaded from (.*): '.*' \((.*)\): ?(.*) ?part (\d+)\s+(yEnc|UUdata|Base64|XXdata|BinHex|plaintext|qptext|unknown|Text)$/ artfile, base, filename, nb, enc = $1, $2, $3, $4, $5 ! if (@curfile._filename == 'unknown') @curfile._filename = filename end --- 68,72 ---- when /^uu_msg\(\d+\):Loaded from (.*): '.*' \((.*)\): ?(.*) ?part (\d+)\s+(yEnc|UUdata|Base64|XXdata|BinHex|plaintext|qptext|unknown|Text)$/ artfile, base, filename, nb, enc = $1, $2, $3, $4, $5 ! if (@curfile and @curfile._filename == 'unknown') @curfile._filename = filename end *************** *** 78,98 **** ldebug "#{blue 'Retrieving'} #{subject}" artindex = Db.dbh.select_one("select `artindex` from `articles` where `mid`='#{mid}'") ! unless artindex ! ldebug "#{red 'BUG'}: No such article in db.articles: #{mid}" ! artindex = [nil] ! end ! artindex = artindex[0] ! @nbfiles += 1 ! Db.dbh.do "update `queue` set `nbfiles`='#{@nbfiles}' where `queueindex`='#{@queueindex}'" ! ! ldebug "#{red 'BUG'}: Old queue_file present while creating new" if @curfile ! @curfile.finish_err if @curfile ! @curfile = QueueFile.new(@queueindex, artindex, false, parts, nblines, @nbfiles) ! if not QueueFile.already_in_db(@queueindex, artindex) ! @curfile.insert_to_db else ! ldebug 'Queue_file already in db', false ! @curfile.update_from_db end --- 78,100 ---- ldebug "#{blue 'Retrieving'} #{subject}" artindex = Db.dbh.select_one("select `artindex` from `articles` where `mid`='#{mid}'") ! if artindex ! artindex = artindex[0] ! @nbfiles += 1 ! Db.dbh.do "update `queue` set `nbfiles`='#{@nbfiles}' where `queueindex`='#{@queueindex}'" ! ! if @curfile ! ldebug "#{red 'BUG'}: Old queue_file present while creating new" ! @curfile.finish_err ! end ! @curfile = QueueFile.new(@queueindex, artindex, false, parts, nblines, @nbfiles) ! if not QueueFile.already_in_db(@queueindex, artindex) ! @curfile.insert_to_db ! else ! ldebug 'Queue_file already in db', false ! @curfile.update_from_db ! end else ! ldebug "#{red 'article not in db.articles'}" end *************** *** 105,122 **** when /^decoded ok/ ! ldebug "#{green 'Decoded'} #{@curfile._filename}" ! @curfile.finish_success @finish_status = 'FINISHED' ! log "Download finished for file #{@curfile._filename}, queue #{@value}" ! @curfile.sync_to_db @curfile = nil when 'download error occured, keeping temp files.' ldebug "#{yellow 'Error'} while downloading" ! @curfile.finish_err @finish_status = 'FAILED' # we do not know the file name ! # log "Download failed for #{@curfile._filename}, queue #{@value}" ! @curfile.sync_to_db @curfile = nil --- 107,124 ---- when /^decoded ok/ ! ldebug "#{green 'Decoded'} #{@curfile._filename if @curfile}" ! @curfile.finish_success if @curfile @finish_status = 'FINISHED' ! log "Download finished for file #{@curfile._filename if @curfile}, queue #{@value}" ! @curfile.sync_to_db if @curfile @curfile = nil when 'download error occured, keeping temp files.' ldebug "#{yellow 'Error'} while downloading" ! @curfile.finish_err if @curfile @finish_status = 'FAILED' # we do not know the file name ! # log "Download failed for #{@curfile._filename if @curfile}, queue #{@value}" ! @curfile.sync_to_db if @curfile @curfile = nil *************** *** 127,135 **** when / decoding errors occured, keeping temp files\.$/ ! ldebug "#{yellow 'Error'} while decoding #{@curfile._filename}" ! @curfile.finish_err_dec @finish_status = 'FAILED' ! log "Download finished, decoding failed for #{@curfile._filename}, queue #{@value}" ! @curfile.sync_to_db @curfile = nil --- 129,137 ---- when / decoding errors occured, keeping temp files\.$/ ! ldebug "#{yellow 'Error'} while decoding #{@curfile._filename if @curfile}" ! @curfile.finish_err_dec if @curfile @finish_status = 'FAILED' ! log "Download finished, decoding failed for #{@curfile._filename if @curfile}, queue #{@value}" ! @curfile.sync_to_db if @curfile @curfile = nil *************** *** 191,204 **** begin io.each { |line| ! update_status line } rescue IOError puts 'nget got killed!' parent.stop - rescue DBI::DatabaseError => e - puts 'A DB error occurred' - puts 'Error code: ' + e.err - puts 'Error message: ' + e.errstr - parent.stop rescue Object => e puts 'Exception while parsing nget output: '+e.class.to_s, e.backtrace --- 193,206 ---- begin io.each { |line| ! begin ! update_status line ! rescue DBI::DatabaseError => e ! puts 'A DB error occurred', "Error code: #{e.err}, message: #{e.errstr}", 'sleeping 5mn' ! sleep 300 ! end } rescue IOError puts 'nget got killed!' parent.stop rescue Object => e puts 'Exception while parsing nget output: '+e.class.to_s, e.backtrace Index: group.rb =================================================================== RCS file: /cvsroot/ngetsuite/ngetsuite/ngetsuite/group.rb,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** group.rb 3 Sep 2004 10:42:59 -0000 1.50 --- group.rb 27 Sep 2004 13:04:05 -0000 1.51 *************** *** 279,287 **** # make the nfo the release reference ! sth = Db.dbh.execute('select articles.rlsartindex,articles.groupindex,nfos.artindex from nfos left join articles using (artindex,groupindex) where articles.artindex != articles.rlsartindex and articles.groupindex=?', @_groupindex) rls, gid, nrls = nil sth.fetch do |row| rls, gid, nrls = *row Db.dbh.do("update articles set rlsartindex='#{nrls}' where rlsartindex='#{rls}' and groupindex='#{gid}'") end sth.finish --- 279,292 ---- # make the nfo the release reference ! sth = Db.dbh.execute( ! 'select articles.rlsartindex,articles.groupindex,nfos.artindex '+ ! 'from nfos left join articles using (artindex,groupindex) '+ ! 'where articles.artindex != articles.rlsartindex and articles.groupindex=?', ! @_groupindex) rls, gid, nrls = nil sth.fetch do |row| rls, gid, nrls = *row Db.dbh.do("update articles set rlsartindex='#{nrls}' where rlsartindex='#{rls}' and groupindex='#{gid}'") + Db.dbh.do("update releases set artindex='#{nrls}' where artindex='#{rls}' and groupindex='#{gid}'") end sth.finish Index: core.rb =================================================================== RCS file: /cvsroot/ngetsuite/ngetsuite/ngetsuite/core.rb,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** core.rb 3 Sep 2004 10:42:59 -0000 1.42 --- core.rb 27 Sep 2004 13:04:05 -0000 1.43 *************** *** 235,243 **** def set_limit(l) ! getmanager.max_dlers = l.to_i end def set_poll_interval(i) ! getmanager.poll_interval = i.to_i end --- 235,243 ---- def set_limit(l) ! get_manager.max_dlers = l.to_i end def set_poll_interval(i) ! get_manager.poll_interval = i.to_i end |