Ejemplo n.º 1
0
def logged_user(username):
    print('Welcome, ' + username)
    print('Choose any option below to continue\n')
    if is_supplier(username):
        print(
            '1. Book Tools\n2. Add Tools\n3. View Bookings\n4. Invoices\n5. Logout\n'
        )
    else:
        print('1. Book Tools\n2. View Bookings\n3. Invoices\n4. Logout\n')
    choice = input('Enter your choice: ')
    if is_supplier(username):
        if choice == '1':
            search.init(input('What are you looking for?'))
        elif choice == '2':
            user.add_tools(username)
        elif choice == '3':
            user.view_bookings(username)
        elif choice == '4':
            user.invoice(username)
        elif choice == '5':
            logout()
        else:
            print('Wrong Input! Try Again')
    else:
        if choice == '1':
            search.init(input('What are you looking for?'))
        elif choice == '2':
            user.view_bookings(username)
        elif choice == '3':
            user.invoice(username)
        elif choice == '4':
            logout()
        else:
            print('Wrong Input! Try Again')
Ejemplo n.º 2
0
def init():
    res=search.init()
    ree=edit_distance.init()
    mainsun=[]
    for i in range(len(res)):
        mainsun.append('%.2f'%float(res[i]*ree[i])) #取小數後2位
    print(mainsun) #害怕,悲傷,憂鬱,焦慮,生氣
Ejemplo n.º 3
0
def welcome():
    print('---------- Welcome to Shared Power ----------\n')
    print('Choose any option below to continue\n')
    print('1. Search Tools\n2. Login\n3. Register\n4. Contact Us\n')
    choice = input('Enter your choice: ')
    if choice == '1':
        search.init(input('What are you looking for?'))
    elif choice == '2':
        login.show_login()
    elif choice == '3':
        register.show_reg()
    elif choice == '4':
        contact.contact_form()
    else:
        print('Wrong Input! Try Again')
        welcome()
Ejemplo n.º 4
0
def init():
    res = search.init()
    ree = edit_distance.init()
    '''for i in range(len(res)):
        mainsun.append('%.2f'%float(res[i]*ree[i])) #取小數後2位
    print(mainsun) #害怕,悲傷,憂鬱,焦慮,生氣'''
    scared = ('%.2f' % float(res[0] * ree[0]))
    sad = ('%.2f' % float(res[1] * ree[1]))
    melancholy = str(res[2] / 2)
    anxiety = ('%.2f' % float(res[3] * ree[3]))
    angry = ('%.2f' % float(res[4] * ree[4]))
    value = np.array([["生氣:" + angry], ["悲傷:" + sad], ["焦慮:" + anxiety],
                      ["害怕:" + scared], ["自殺:" + melancholy]])
    text_cw('c', value)
Ejemplo n.º 5
0
    def get(self, request_type):
        service_logger.info('request uri: %s' % urllib.parse.unquote(self.request.uri))
        service_logger.info('request IP: %s' % self.request.remote_ip)

        self.set_header('Access-Control-Allow-Origin','*')
        flag = True
        error_msg = ''
        # token验证
        if 'token' in self.request.query_arguments:

            token_requset = convert_to_str(self.request.query_arguments['token'][0])
            service_logger.info('request token :%s' % token_requset)
            token_server = md5_token(token_requset)
            if not token_server: # 发送的token跟服务器生成的token不一致
                service_logger.info('invalid token')
                self.finish(json.dumps(exit_error_func(4, 'token验证失败'), ensure_ascii=False, indent=4))

        if request_type == 'reload':
            try:
                if 'search_flag' in self.request.query_arguments:
                    search_flag = self.request.query_arguments['search_flag'][0]
                    search.init(convert_to_str(search_flag))
                    assess_student.init()
                    path_planning.init()
                else:
                    _init()
                service_logger.info('service reload success.')
                self.finish('reloaded.')
            except:
                service_logger.info('service reload success.')
                self.finish('failed.')
        elif request_type == 'school_search':
            if 'condition' in self.request.query_arguments:
                try:
                    condition = self.request.query_arguments['condition'][0]
                    condition = convert_to_str(condition)
                    condition = condition.replace(' ', '')
                except Exception as e:
                    service_logger.error(e)
                    error_msg = exit_error_func(1, 'condition')
                    flag = False

            else:
                error_msg = exit_error_func(5, 'condition是必选参数')
                flag = False
            if 'area' in self.request.query_arguments:
                try:
                    area = self.request.query_arguments['area'][0]
                    area = convert_to_str(area)
                    area = area.strip()
                    if len(area) < 1:
                        area = None
                except Exception as e:
                    service_logger.error(e)
                    error_msg = exit_error_func(1, 'area')
                    flag = False
                    area = None
            else:
                area = None
            if 'country' in self.request.query_arguments:
                try:
                    country = self.request.query_arguments['country'][0]
                    country = convert_to_str(country)
                    country = country.strip()
                    if len(country) < 1:
                        country = None
                except Exception as e:
                    service_logger.error(e)
                    error_msg = exit_error_func(1, 'country')
                    flag = False
                    country = None
            else:
                country = None
            if 'major' in self.request.query_arguments:
                try:
                    major = self.request.query_arguments['major'][0]
                    major = convert_to_str(major)
                    major = major.strip()
                    if len(major) < 1:
                        major = None
                except Exception as e:
                    service_logger.error(e)
                    error_msg = exit_error_func(1, 'major')
                    flag = False
                    major = None
            else:
                major= None
            if flag:
                self.finish(json.dumps(search.search_school(condition=condition, major=major, area=area, country=country), ensure_ascii=False, indent=4))
            else:
                self.finish(error_msg)
        elif request_type == 'assess_student':
            if 'condition' in self.request.query_arguments:
                try:
                    condition = json.loads(convert_to_str(self.request.query_arguments['condition'][0]))
                except Exception as e:
                    service_logger.error(e)
                    error_msg = exit_error_func(1, 'condition格式转换出错')
                    flag = False
            else:
                error_msg = exit_error_func(5, 'condition为必选参数')
                flag = False
            if flag:
                assess_student.init()
                self.finish(json.dumps(assess_student.assess(condition), ensure_ascii=False, indent=4))
            else:
                self.finish(error_msg)
        elif request_type == 'path_planning':
            if 'condition' in self.request.query_arguments:
                try:
                    condition = json.loads(convert_to_str(self.request.query_arguments['condition'][0]))
                except Exception as e:
                    service_logger.error(e)
                    error_msg = exit_error_func(1, 'condition格式转换出错')
                    flag = False
            else:
                error_msg = exit_error_func(5, 'condition为必选参数')
                flag = False
            if 'size' in self.request.query_arguments:
                size = self.request.query_arguments['size'][0]
            else:
                size = None
            if flag:
                self.finish(json.dumps(path_planning.schedule(condition=condition, size=size), ensure_ascii=False, indent=4))
            else:
                self.finish(error_msg)
        else:
            service_logger.info('invalid request method.')
            self.finish(exit_error_func(7, request_type))
Ejemplo n.º 6
0
def _init():
    ''' 其他模块统一初始化 '''
    search.init()
    assess_student.init()
    path_planning.init()
Ejemplo n.º 7
0
import time
from datetime import datetime, timedelta
from urllib.parse import urlparse, parse_qs

import settings
import database
import search
import feed
from utils import gen_rand_id

from flask import abort, Flask, request, render_template, stream_with_context, Response
from werkzeug.exceptions import NotFound
from flask_cors import CORS

database.init()
search.init()


def new_id():
    nid = gen_rand_id()
    while database.get_story(nid):
        nid = gen_rand_id()
    return nid


build_folder = '../webclient/build'
flask_app = Flask(__name__,
                  template_folder=build_folder,
                  static_folder=build_folder,
                  static_url_path='')
cors = CORS(flask_app)
Ejemplo n.º 8
0
def next_step(url):
    """Funkcja która odpowiada za prawidłową kolejność wywoływania funkcji"""
    try:
        with open('Area.txt', 'r') as f:
            pom = json.loads(f.read())
            if len(url) - len(pom) > 300: #sprawdzanie czy liczba linków kóre zostały porane zbyt znacząco nie różni się od liczby pobranych danych
                search.init() #wywoałanie funkcji która zarządza porcesem pobierania danych na podstawie wcześniej zebranych linków
                search.save() #wywołanie funkcji do zapisu danych 
    except FileNotFoundError:
        search.init()
        search.save()
    charts.main() #wywołanie funkcji do analizy danych oraz do tworzenia wykresów 

    while True:
        """Pętla do obsługi interakcji z użytkownikiem"""
        while True:
            """Pętla do wprowadzania instrukcji od użytkownika"""
            action = input("Wpisz co chcesz zrobić:\n(0).Wyświetl wykresy \n(1).Jednorazowo wyślij wykresy na maila\n(2).Wyślij interesujące Cię ogłoszenia maila\n(3).Edytuj swoje ustawienia\n(4).Wyjdź\n")
            try:
                action = int(action)
                if (0 <= action <= 4):
                    break
                print ("\nWybrałeś błędną operacje")
            except ValueError:
                print("\nWprowadź liczbę!")

        if action == 0: #przypadek gdy użytkownik wybrał opcję 0
            charts.ploting()    #wywołanie funkcji która pokazyje stowrzone wcześniej wykresy
            
        elif action == 1:   #przypadek gdy użytkownik wybrał opcję 0
            while True:
                email_adr = str(input("Wprowadz swojego maila: "))
                if re.search(r"^[\w\.\+\-]+\@[\w]+\.[a-z]{2,3}$", email_adr): #walidacja adresu email
                    break
            emails.send_charts(email_adr)   #wywoływanie funkcji do wysyłania maili z adresem podanym przy jednorazowym wysyłaniu danych 

        elif action == 2:   #przypadek gdy użytkownik wybrał opcję 2
            if os.path.basename(os.path.dirname(os.getcwd()))=="DATA":  #sprawdzanie w jakim folderze się znajdujemy
                os.chdir("../../")
            try:
                with open('settings.json', 'r+') as f:  #próba otwarcia pliku z ustawieniami 
                    s = json.loads(f.read())
                    os.chdir(os.getcwd() + "/DATA/" + str(date))    #zmiana folderu
                    print("Ilość pasujących aukcji:", charts.notification(s))   #wywołanie funkcji która zwraca liczbę ogłoszeń które pasują do naszych ustawień                   
                    send_val = input("Wysłać ogłoszenia na maila?? [Y/N]: ")                    
                    if send_val.upper() == "Y":
                       emails.send_charts() #wywołanie funkcji która wysyła maila    
            except FileNotFoundError:   #sytuacja gdy nie znajdziemy pliku z ustawieniami 
                set_settings.main() #wywołanie funkcji która odpowiada za tworzenie ustawień
                with open('settings.json', 'r+') as f: #ponowna prób otwarcia stworzonego wcześniej pliku
                    s = json.loads(f.read())
                    os.chdir(os.getcwd() + "/DATA/" + str(date))
                    print("Ilość pasujących aukcji:", charts.notification(s))                    
                    send_val = input("Wysłać ogłoszenia na maila?? [Y/N]: ")                    
                    if send_val.upper() == "Y":
                        emails.send_charts()
                           
        elif action == 3:   #przypadek gdy użytkownik wybrał opcję 3
            if os.path.basename(os.path.dirname(os.getcwd()))=="DATA":
                os.chdir("../../")
            set_settings.main() #wywołanie funkcji która odpowiada za tworzenie ustawień
        elif action == 4:
            break
        os.system("clear")