File size: 1,636 Bytes
7601e22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
09d54e2
13fa3f3
09d54e2
 
7601e22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13fa3f3
7601e22
267ec34
7601e22
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import sqlite3
import pandas as pd
import datetime

def load():
    query = '''
    select * from classroom_info; 
    '''
    db = sqlite3.connect("classrooms.db")
    data = pd.read_sql_query(query, db)
    return data

def generate(course_name, teacher_name, selected_day):
    result = load()
    time = result.at[0, 'cr_cono']
    if course_name != "":
        result = result[result['cr_cnam'].str.contains(course_name, na=False)]
    if teacher_name != "":
        result = result[result['cr_tenam'].str.contains(teacher_name, na=False)]

    if result.empty:
        result = pd.DataFrame(columns=['課號', '班次', '課程名稱', '授課教師', '教室', '時間'])
        return time, result.to_html(index=False, escape=False)

    day_mapping = {
        "不限": "無",
        "星期一": "一",
        "星期二": "二",
        "星期三": "三",
        "星期四": "四",
        "星期五": "五"
    }
    day = day_mapping[selected_day]
    if day != "無":
        result = result[result['cr_time'].str.contains(day, na=False)]

    result['cr_cnam'] = result.apply(
        lambda row: f'<a href="https://coursemap.aca.ntu.edu.tw/course_map_all/course.php?code={row["cr_cono"].replace(" ", "+")}" target="_blank">{row["cr_cnam"]}</a>',
        axis=1
    )
    
    # result = result.drop(columns=['cr_cono'])
    result = result.rename(columns={
        'cr_cono': '課號', 
        'cr_clas': '班次',
        'cr_cnam': '課程名稱',
        'cr_tenam': '授課教師',
        'cr_no': '教室',
        'cr_time': '時間'
    })
    
    return time, result.to_html(index=False, escape=False)