👁 查看: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()])+'}'

ページが見つかりませんでした – Lumiere Shop
ここを指しているリンクに誤りがあったようです。検索してみるのはいかがですか ?
お買い物カゴ