✏️ 编辑:servers.py
路径:
/virtual/bigbrother/public_html/edream-c.com/cr/servers.py
大小:3.42 KB · 修改:2014-04-13 19:50:28 · 权限:0755 · 可写
← 返回目录
👁 查看
⬇ 下载
#!/usr/bin/python # -*- coding: utf-8 -*- # TOMUSS: The Online Multi User Simple Spreadsheet # Copyright (C) 2008-2011 Thierry EXCOFFIER, Universite Claude Bernard # # 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Contact: Thierry.EXCOFFIER@bat710.univ-lyon1.fr class Suivi(object): def __init__(self, https=False): self.urls = {} if https: self.http = 'https' else: self.http = 'http' def urls_sorted(self): from . import utilities urls = self.urls.items() urls.sort(key=lambda x: utilities.semester_key(x[0][0], x[0][1])) if urls: return zip(*urls)[1] else: return () def servers(self): done = set() servers = list(self.urls_sorted()) servers.reverse() # most recent servers first for url, port, year, semester, host in servers: if port in done: continue done.add(port) yield url, port, year, semester, host def add(self, year, semester, host, port): if '%' in host: host = host % port self.urls[str(year), semester] = ( '%s://%s/%s/%s' % (self.http, host, year, semester), port, year, semester, host) def url(self, year=None, semester=None, ticket=None): from . import configuration if year == None: year, semester = configuration.year_semester try: url, port, year, semester, host = self.urls[str(year), semester] except KeyError: if ticket and (year, semester) != configuration.year_semester: return self.url(configuration.year_semester[0], configuration.year_semester[1], ticket, ) return 'http://not_running_suivi_server/' if ticket: u = '%s://%s/=%s/%s/%s' % (self.http, host, ticket, year, semester) else: u = '%s://%s/%s/%s' % (self.http, host, year, semester) return u def url_with_ticket(self, ticket): for url, port, year, semester, host in self.urls_sorted(): yield ('%s://%s/=%s/%s/%s'%(self.http,host,ticket,year,semester), port, year, semester, host) def all(self, ticket=None): if ticket: return '{' + ','.join([ '"%d/%s": "%s://%s/=%s/%s/%s"' % ( year, semester, self.http, host, ticket, year, semester) for url, port, year, semester, host in self.urls.values()])+'}' else: return '{' + ','.join([ '"%d/%s": "%s"' % (year, semester, url) for url, port, year, semester, host in self.urls.values()])+'}'
💾 保存
取消
保存为 UTF-8,换行统一为 LF