Пример #1
0
def print_timetable(browser):
    driver = browser.driver
    h3s = driver.execute_script('return $(arguments[0])', 'h3')
    tables = []
    for table in driver.execute_script('return $(arguments[0])', 'table'):
        rows = []
        row = []
        for th in driver.execute_script(
                'return $(arguments[0]).find(arguments[1])', table, 'thead th'):
            row.append(th.text)
        rows.append(row)
        for tr in driver.execute_script(
                'return $(arguments[0]).find(arguments[1])', table, 'tbody tr'):
            row = []
            for td in driver.execute_script(
                'return $(arguments[0]).find(arguments[1])', tr, 'td'):
                spans = []
                for span in driver.execute_script(
                        'return $(arguments[0]).find(arguments[1])',
                        td, 'span'):
                    text = span.text.strip()
                    if text:
                        spans.append(text)
                row.append(' '.join(spans))
            rows.append(row)
        tables.append(rows)
    print h3s[0].text
    print '-' * len(h3s[0].text)
    print h3s[1].text
    print format_table(tables[0], header_rows=1)
    print h3s[2].text
    print format_table(tables[1], header_rows=1)
Пример #2
0
def print_rml_table(browser):
    story = browser.query.tag('story').getHTML()
    table = []
    for row in queryXML('//blocktable/tr', story):
        cells = queryXML('//td/text()', row)
        table.append(cells)
    print format_table(table, header_rows=1)
Пример #3
0
def print_schedules(browser):
    title_sel = '.container .body > div > h3:not(".done-link")'
    rows = []
    for title in browser.driver.execute_script('return $(arguments[0])',
                                               title_sel):
        print title.text
        for table in browser.driver.execute_script(
                'return $(arguments[0]).next().find(arguments[1])', title,
                'table.timetable'):
            rows.append([
                th.text for th in browser.driver.execute_script(
                    'return $(arguments[0]).find(arguments[1])', table,
                    'th.day')
            ])
            for tr in browser.driver.execute_script(
                    'return $(arguments[0]).find(arguments[1])', table,
                    'tbody tr'):
                row = []
                for td in browser.driver.execute_script(
                        'return $(arguments[0]).find(arguments[1])', tr, 'td'):
                    row.append(td.text)
                rows.append(row)
    print format_table(rows, header_rows=1)
Пример #4
0
def format_weekly_calendar(contents):
    table = []
    for n, row in enumerate(queryHTML('//table[@id="calendar-view-week"]//tr', contents)):
        if n == 0:
            header = []
            for cell in queryHTML('//tr//th/a/text()', str(row)):
                header.append(cell)
            table.append(header)
        else:
            block = []
            for cell in queryHTML('//tr//td', str(row)):
                events = []
                for event in queryHTML('//td//a//span/text()', str(cell)):
                    events.append(event)
                block.append(", ".join(events))
            table.append(block)
    return format_table(table, header_rows=1)
Пример #5
0
def format_weekly_calendar(contents):
    table = []
    for n, row in enumerate(
            queryHTML('//table[@id="calendar-view-week"]//tr', contents)):
        if n == 0:
            header = []
            for cell in queryHTML('//tr//th/a/text()', str(row)):
                header.append(cell)
            table.append(header)
        else:
            block = []
            for cell in queryHTML('//tr//td', str(row)):
                events = []
                for event in queryHTML('//td//a//span/text()', str(cell)):
                    events.append(event)
                block.append(", ".join(events))
            table.append(block)
    return format_table(table, header_rows=1)