中央财经大学图书馆:座位对应的人Name获取

# THIS FILE IS PART OF Mr.Guo WULIAO.PY FILES
# check.py - TO FIND NAEM OR FIND PLACE OF CUFE LIBRARY
# THIS PROGRAM IS A FREE SOFTWARE
# YOU SHOULD HAVE RECEIVED A COPY OF LICENSE, IF NOT,YOU SHOULD ADD QQ:3206283501
# @AUTHOR: 
# Copyright (c) CUFE COMPUTER 15 
# Copyright (c) 2017 Mr.Guo 
# WANTING FOR A GIRL FRIEND ADD QQ:3206283501

#import lib
import random
import json
from urllib import request
import time
from bs4 import BeautifulSoup
import threading

#init flag
flag = True

#print now time
print("当前时间")
print("========================")
print(time.asctime(time.localtime(time.time())))
print("========================")

#get_content
def get_html_content(url):
    html = request.urlopen(url)
    content = html.read()
    return content

#append urls to a list
url = "http://10.12.162.31/ClientWeb/xcus/ic2/Default.aspx"
html = request.urlopen(url)
bs_obj = BeautifulSoup(html,"html.parser")
url = bs_obj.findAll("li",{"class":"it"})
url_list = []
date = time.strftime('%Y-%m-%d',time.localtime(time.time()))

for i in range(5,len(url)):
    fuck = url[i].attrs["url"] 
    fuck = list(fuck)
    site_id = ''
    for i in range(40,49):
        site_id += fuck[i]

    page_url = "http://10.12.162.31/ClientWeb/pro/ajax/device.aspx?byType=devcls&classkind=8&display=fp&md=d&room_id=%s"%site_id + "&purpose=&cld_name=default&date=%s"%date + "&fr_start=15%3A30&fr_end=16%3A30" + "&act=get_rsv_sta&_=%s"%str(time.time())[0:10]
    url_list.append(page_url)

#function for check
def append(start,end):
    inside_url = []
    for i in range(start,end):
        inside_url.append(url_list[i])
    return inside_url

#check area sites state
def check_area(site_id,inside_url):
    site_id_list = list(site_id)
    area = site_id_list[1]
    url = ''
    area = area.upper()
    
    if area == 'A':
        url = inside_url[0]
    elif area == 'B':
        url = inside_url[1]
    elif area == 'C':
        url = inside_url[2]
    elif area == 'D':
        url = inside_url[3]
    elif area == 'E':
        url = inside_url[4]
    elif area == 'F':
        url = inside_url[5]
    else:
        print("You enter a bad area")
        
    return url

#find person function
def find_person(url):
    global flag
    json_content = get_html_content(url)
    json_content = str(json_content,encoding = "utf-8")
    #print(json_content)
    json_read = json.loads(json_content)
    #print(json_read)
    for i in range(len(json_read['data'])):
        try:
            if name == json_read['data'][i]['ts'][0]['member']:
                print(json_read['data'][i]['devName'])
                flag = False
                break
            elif name == json_read['data'][i]['ts'][0]['owner']:
                print(json_read['data'][i]['devName'])
                flag = False
                break
        except Exception:
            pass

#main function
choice = input('''enter u choice:
    a.enter place and find name
    b.enter name find place
    c.print total site-name list
    d.check area place name
    ''')
print("========================")
choice = choice.lower()

if choice == 'a':
        site_id = input("enter the place.eg 2F512\n:")
        
        if site_id.startswith("1"):
            inside_url = append(0,3)
            url = check_area(site_id,inside_url)

        elif site_id.startswith("2"):
            inside_url = append(3,9)
            url = check_area(site_id,inside_url)
            
        elif site_id.startswith("3"):
            inside_url = append(9,15)
            url = check_area(site_id,inside_url)

        elif site_id.startswith("4"):
            inside_url = append(15,21)
            url = check_area(site_id,inside_url)

        elif site_id.startswith("5"):
            inside_url = append(21,26)
            url = check_area(site_id,inside_url)

        else:
            print("You are sb for that u enter a false floor id")
            
        
        json_content = get_html_content(url)
        json_content = str(json_content,encoding = "utf-8")
        json_read = json.loads(json_content)

        for i in range(len(json_read['data'])):
            try:
                if site_id == json_read['data'][i]['devName']:
                    if json_read['data'][i]['ts'][0]['member'] != '':
                        print(json_read['data'][i]['ts'][0]['member'])
                    elif json_read['data'][i]['ts'][0]['owner'] != '':
                        print(json_read['data'][i]['ts'][0]['owner'])
                    else:
                        print("There is no one in this place")
            except Exception as e:
                pass
        print("========================")

            
elif choice == 'b':
    name = input("enter the name.eg 郭磊\n:")
    threads = []
    for url in url_list:
        t = threading.Thread(target = find_person,args = (url,))
        t.start()
        threads.append(t)
    for t in threads:
        t.join()
    if flag:
            print("The person u want to find don't occupy any site")
    print("========================")

            
elif choice == 'c':
    for url in url_list:
        json_content = get_html_content(url)
        json_content = str(json_content,encoding = "utf-8")
        #print(json_content)
        
        json_read = json.loads(json_content)
        #print(json_read)
        for i in range(len(json_read['data'])):
            try:
                if json_read['data'][i]['ts'][0]['member'] != '':
                    print(json_read['data'][i]['devName']+' '+json_read['data'][i]['ts'][0]['member'])
                else:
                    print(json_read['data'][i]['devName']+' '+json_read['data'][i]['ts'][0]['owner'])
            except Exception:
                pass
        print("========================")
        
elif choice == 'd':
        floor_id = input("enter the floor.eg 2F\n:")
        
        if floor_id.startswith("1"):
            inside_url = append(0,3)
            url = check_area(floor_id,inside_url)

        elif floor_id.startswith("2"):
            inside_url = append(3,9)
            url = check_area(floor_id,inside_url)
            
        elif floor_id.startswith("3"):
            inside_url = append(9,15)
            url = check_area(floor_id,inside_url)

        elif floor_id.startswith("4"):
            inside_url = append(15,21)
            url = check_area(floor_id,inside_url)

        elif floor_id.startswith("5"):
            inside_url = append(21,26)
            url = check_area(floor_id,inside_url)

        else:
            print("You are sb for that u enter a false floor id")

        json_content = get_html_content(url)
        json_content = str(json_content,encoding = "utf-8")
        #print(json_content)
        
        json_read = json.loads(json_content)
        #print(json_read)
        for i in range(len(json_read['data'])):
            try:
                if json_read['data'][i]['ts'][0]['member'] != '':
                    print(json_read['data'][i]['devName']+' '+json_read['data'][i]['ts'][0]['member'])
                else:
                    print(json_read['data'][i]['devName']+' '+json_read['data'][i]['ts'][0]['owner'])
            except Exception:
                pass
        print("========================")

else :
    print("You enter a bad choice please try later")
        
input("PRESS ENTER TO QUIT")

效果图



  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
图书馆座位预约系统 一、主要功能 学生用户: 座位状态(可预约/已预约;电影院选座模式:可选座位显示为绿色;不可选座位显示为红色) 座位类型:单人(1楼)、双人(2楼)、四人(3楼)(需填写至少三人信息方可申请四人座位)、隔间(需填写至少三人信息方可申请四人座位);每种类型的座位为6×6摆放; 预约功能:学生凭学号登录该系统进行座位预约;与图书馆刷卡系统配合使用(此处能够模拟实现即可) 预约规则: 1.预约时间需提前至少30min;可自由选择座位剩余座位以及时常; 2.预约成功后,在预约时间的前后30min内刷卡进入图书馆视为有效; 3.进入图书馆时间超过预约时间30min预约失效,该座位状态变为可预约,其他同学可进行预约(假如有人定了八点到的,如果她八点没到,座位可以帮她保留30分钟;如果她30分钟之内来了,正常使用;如果30分钟后没来就将座位开放,其他同学可预约); 4.距离最迟进入图书馆的合法时间还剩10min时弹出警告框: a)内容:“座位预约即将失效,请按时进入图书馆学习; b)功能键:【确认】退出警告框; c)功能键:【取消预约】转入取消预约座位界面; 5.若该生未在有效时间进入图书馆其预约座位信誉分-1(总分3分),弹出警告框; a)内容:“由于您未能按时进入图书馆,本次信誉分-1” b)功能键:【详细信息】转入个人信息界面; 当信誉分减为0时,该生将被拉入信誉黑名单(此时不可申请座位),一周后恢复白名单;累计三次进入信誉黑名单需辅导员开证明再恢复白名单。 6.提前离开可使用结束使用功能;若未结束使用,刷卡离开2h后座位自动收回,座位状态变为可预约,可由其他同学预约使用同时该生信誉分-1(具体同5)。 (这个功能主要是防止有人申请了一天的座位大是刷个卡就走了,这样依然存在资源浪费现象;所以如果中途刷卡外出座位可以保留2h;2h之后座位收回,变为可预约状态供其他同学使用) 7.正常使用结束时提前10min弹出警告框 a)内容:剩余时间不足10min,如需继续使用请续时! b)功能键【不续时】:正常结束后该座位恢复“可预约”状态; c)功能键【续时】:进入续时界面 预约时常区间( 1h;上午(8:30-11:59);下午(12:00-17:59);晚上(18:00-21:40);全天 ) 续时功能​:(1)可选择继续使用当前座位;选择时常即可( 1h;上午(8:30-11:59);下 午(12:00-17:59);晚上(18:00-21:40);全天 ); (2)重新申请其他座位,即预约界面; 收藏心仪座位功能:学生可根据个人喜好添加心仪座位进入【我的收藏】,收藏夹的座位设置【一键预约】,若所收藏的座位为“可预约”状态则可通过点击【一键预约】进行预约,提示“预约成功,请在规定时间进入图书馆”;若为“已预约”状态,点击【一键预约】时提示“该座位已满!再看看其他座位吧!” 留言功能: (1)学生可在留言区给管理员(可查看留言者信息)留言进行:问题反馈、提问等;学生有权限查看其他留言但不可查看留言者信息;学生可对留言进行点赞;按点赞次数排序留言; (2)管理员可删除不良留言; 学生编辑、修改个人信息:学号、密码、联系电话、邮箱、当前信誉分。 统计当前在线总人数; 普通用户登录、管理员登录: (1)密码正确进入主页面,否则提示【密码错误,请重新输入】进入重新登录界面;管理员可以【修改管理员信息】; (2)若是系统管理员:2个功能块【账号信息】、【班级信息】; (3)若是座位管理员:进入座位表界面;可对座位表进行增删改查等操作; 管理员用户: (1)系统管理员 系统管理员可以登录管理员界面,进行班级信息管理,账号管理; 班级信息管理:可以添加、修改、删除、查看班级及班级信息; 可以修改存在班级的辅导员; 可以通过Excel文件的形式批量上传信息; 账号管理:可以添加,删除,修改账号;重置用户密码为初始值;将用户移出黑名单; (2)座位管理员 座位管理员可以添加,删除,修改座位信息,可以通过Excel文件的形式批量上传信息; (3)学生表信息:学号(主键)、账号密码、性别、班级、当前信誉分、邮箱、联系电话; (4)座位信息表:座位编号(主键)、座位当前状态、座位类型,备注; (5)预约表:座位编号、预约人学号、预约时段、剩余时间;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值