From: <bel...@us...> - 2003-03-29 00:54:18
|
Update of /cvsroot/btplusplus/BT++/src/WebServer In directory sc8-pr-cvs1:/tmp/cvs-serv24784/src/WebServer Modified Files: BTWebServer.py Log Message: Implementation of UpdateManager. Makes sure updates don't happen too fast if two automatic updaters collide (aka TimedUpdate and HTTP refreshs). Implemented FancyZURLOpener with zlib compression (used for InfoManager). Some fixes Index: BTWebServer.py =================================================================== RCS file: /cvsroot/btplusplus/BT++/src/WebServer/BTWebServer.py,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** BTWebServer.py 28 Mar 2003 21:09:34 -0000 1.12 --- BTWebServer.py 29 Mar 2003 00:54:14 -0000 1.13 *************** *** 14,17 **** --- 14,18 ---- from InfoManager import InfoManager from core.CurrentRateMeasure import GlobalMeasure + from TimedUpdate import UpdateManager import socket *************** *** 43,53 **** except: pass ! templateRoot = TemplateManager().prepare("WebTemplates/root.tmpl") ! templateMenu = TemplateManager().prepare("WebTemplates/menu.tmpl") ! templateExit = TemplateManager().prepare("WebTemplates/exit.tmpl") ! templateDLFail = TemplateManager().prepare("WebTemplates/dl_fail.tmpl") ! templateTorrent = TemplateManager().prepare("WebTemplates/torrent.tmpl") ! templateLog = TemplateManager().prepare("WebTemplates/log.tmpl") ! templateConfig = TemplateManager().prepare("WebTemplates/config.tmpl") ########################################################################################################### --- 44,56 ---- except: pass ! WTTemplateManager = TemplateManager() ! ! templateRoot = WTTemplateManager.prepare("WebTemplates/root.tmpl") ! templateMenu = WTTemplateManager.prepare("WebTemplates/menu.tmpl") ! templateExit = WTTemplateManager.prepare("WebTemplates/exit.tmpl") ! templateDLFail = WTTemplateManager.prepare("WebTemplates/dl_fail.tmpl") ! templateTorrent = WTTemplateManager.prepare("WebTemplates/torrent.tmpl") ! templateLog = WTTemplateManager.prepare("WebTemplates/log.tmpl") ! templateConfig = WTTemplateManager.prepare("WebTemplates/config.tmpl") ########################################################################################################### *************** *** 105,108 **** --- 108,113 ---- del WebLog[0] + WTInfo = InfoManager(log = WebLogit, update = int(HTTPConfig.Get('Display', 'RefreshInfo'))) + WTSeeds = SeedManager( [ Config.Get('Paths', 'History'), Config.Get('Paths', 'Incoming'), *************** *** 137,144 **** --- 142,153 ---- except: loader.OnError('Could not move downloaded file.') + + WTInfo.RemoveLoader(loader) new = WTSeeds.CreateNewLoader(loader.Config['Tor']) if new == None: return + + WTInfo.Update() if Config.Get('Download', 'KeepUpload'): *************** *** 169,177 **** WTSeeds.Update() - WTInfo = InfoManager(log = WebLogit, update = int(HTTPConfig.Get('Display', 'RefreshInfo'))) WTInfo.AddManager(WTLoaders) WTInfo.AddManager(WTSeeds) WTInfo.Update() ########################################################################################################### ########################################################################################################### --- 178,192 ---- WTSeeds.Update() WTInfo.AddManager(WTLoaders) WTInfo.AddManager(WTSeeds) WTInfo.Update() + def UpdateManagers(): + WTLoaders.Update() + WTSeeds.Update() + WTInfo.Update() + + WTTimer = UpdateManager(int(HTTPConfig.Get('Display', 'Refresh')), UpdateManagers) + ########################################################################################################### ########################################################################################################### *************** *** 182,193 **** server_version = "WTHTTP/" + __version__ ! def Update(self): ! WTLoaders.Update() ! WTSeeds.Update() ! WTInfo.Update() def UpdateConfig(self): WTInfo.UpdateUpdate(int(HTTPConfig.Get('Display', 'RefreshInfo'))) def do_GET(self): --- 197,207 ---- server_version = "WTHTTP/" + __version__ ! def Update(self): ! WTTimer.Update(force = True) def UpdateConfig(self): WTInfo.UpdateUpdate(int(HTTPConfig.Get('Display', 'RefreshInfo'))) + WTTimer.SetInterval(int(HTTPConfig.Get('Display', 'Refresh'))) def do_GET(self): *************** *** 227,233 **** if result['command']=='Pause': if result['seed']=='0': ! WTLoaders.Loaders[int(result['nr'])-1].PauseDownload() else: ! WTSeeds.Loaders[int(result['nr'])-1].PauseDownload() elif result['command']=='Resume': if result['seed']=='0': --- 241,247 ---- if result['command']=='Pause': if result['seed']=='0': ! WTLoaders.Loaders[int(result['nr'])-1].PauseDownload(user = true) else: ! WTSeeds.Loaders[int(result['nr'])-1].PauseDownload(user = true) elif result['command']=='Resume': if result['seed']=='0': *************** *** 312,320 **** dummy, self.requested = temp.split('/') self.requested = self.requested.replace('?',''); ! if self.requested in ['','exit','menu','torrents','config','log']: self.send_response(200) self.send_header("Content-type", "text/html") self.send_header("Expires", "Mon, 26 Jul 1997 05:00:00 GMT") self.end_headers() else: self.send_error(404, "File not found") --- 326,338 ---- dummy, self.requested = temp.split('/') self.requested = self.requested.replace('?',''); ! if self.requested in ['','exit','menu','torrents','config','log','refreshtemplates','forceupdate']: self.send_response(200) self.send_header("Content-type", "text/html") self.send_header("Expires", "Mon, 26 Jul 1997 05:00:00 GMT") self.end_headers() + if self.requested == 'forceupdate': + for server in WTInfo.servers: + server.Update(force = True) + self.requested = '' else: self.send_error(404, "File not found") *************** *** 444,446 **** --- 462,466 ---- def server(self): self.serve_forever() + + |