Example #1
0
def menu_delete_all_exams(ip, port, username, password, login_attempt=10):
    print('ВНИМАНИЕ:')
    print('Это действие безвозвратно удалит расписание экзаменов всех групп.')

    if confirm():
        access_token, refresh_token = login(ip, port, username, password)
        org_data = create_org_structure(ip, port, username, password)

        for org in org_data:
            for faculty in org_data[org]:
                for group in org_data[org][faculty]:
                    for attempt in range(login_attempt):
                        try:
                            delete_group_exams(ip, port, access_token, org,
                                               faculty, group)
                            print(
                                'Расписание экзаменов '
                                'группы (преподавателя) {} курса(кафедры) {} организации {} успешно удалено'
                                .format(group, faculty, org))
                        except AccessDeniedError:
                            access_token, refresh_token = login(
                                ip, port, username, password)
                            continue
                        break
    else:
        print('Действие отменено')
Example #2
0
def test_graph_update():
    api.login("system", os.getenv("SYSTEM_PWD"))

    data = {
        'name': "bob",
        'age': 39,
    }

    resp = api.post('/api/data/user', data)

    id = resp['uid']
    user_url = '/api/data/user/{0}'.format(id)

    nquads = '\n'.join(['<{0}> <first_lang> "ru" .'.format(id)])
    api.post('/api/nquads', nquads, content_type='application/n-quads')

    resp = api.get(user_url)
    assert resp['first_lang'] == 'ru'

    mutation = {
        'set': '\n'.join(['<{0}> <age> "38"^^<xs:int> .'.format(id)]),
        'delete': '\n'.join(['<{0}> <first_lang> * .'.format(id)]),
    }
    api.post('/api/nquads', mutation)

    resp = api.get(user_url)
    assert resp['age'] == 38
    assert 'first_lang' not in resp

    api.delete(user_url)
def getPrefRes(availRes):

    if not Prefs['username'] or not Prefs['password']:
        return 360  # that's all you get
    api.login()
    preferredRes = 360

    if Prefs['quality'] == "Ask":
        #bwaaat? shouldn't call this
        Log.Error(
            "####Can't determine preferred res because user wants to choose!")
    else:
        # the assumption is that the user chooses a resolution
        # (instead of "highest available") to control bandwidth/cpu use
        # so pick the highest res that is <= user's selection
        preferredRes = Quality2Resolution[Prefs['quality']]

    if len(availRes):
        reslist = availRes

        # lowest first
        reslist.sort()

        chosenRes = 360  # in case reslist is empty
        for res in reslist:
            if res <= preferredRes:
                chosenRes = res
            else:
                break

    return chosenRes
def login_check():
    if not get_setting_bool(constants.LOGGED_IN):
        # Ask for credentials if they are missing
        if utils.isEmpty(get_setting(constants.USERNAME)) or utils.isEmpty(
                get_setting(constants.PASSWORD)):
            showSettingsGui()
            return
        # Log in and show a status notification
        try:
            api.login()
            showGuiNotification("Login successful")
        except ApiError as e:
            showGuiNotification(str(e))
            utils.log(str(e))
            pass
        return

    # Periodically (1 day) force update token because it can expire
    t1 = utils.dateFromString(get_setting(constants.LAST_LOGIN))
    t2 = datetime.datetime.now()
    interval = 1
    update = abs(t2 - t1) > datetime.timedelta(days=interval)
    if update is True:
        utils.log("Refreshing Lattelecom login token")
        set_setting(constants.LAST_LOGIN, utils.stringFromDateNow())
        try:
            api.login(force=True)
        except ApiError as e:
            showGuiNotification(str(e))
            utils.log(str(e))
            pass
    else:
        utils.log("Lattelecom login token seems quite fresh.")
Example #5
0
def test_delete_file_by_id():
    api.login("system", os.getenv("SYSTEM_PWD"))
    headers = api.headers()
    params = {'key': api.API_KEY}

    file_url = api.url('/api/file/schema3.txt')

    files = {'file': open(api.schema_path(), 'rb')}
    resp = requests.post(file_url, params=params, headers=headers, files=files)
    resp.raise_for_status()

    node = resp.json()
    file_id = node['uid']

    # download by path
    resp = requests.get(file_url, params=params, headers=headers)
    resp.raise_for_status()
    print(resp.text)

    # download by id
    url1 = api.url('/api/file/{0}'.format(file_id))
    resp = requests.get(url1, params=params, headers=headers)
    resp.raise_for_status()
    print(resp.text)

    url2 = api.url('/api/file/{0}'.format(file_id))
    resp = requests.delete(url2, params=params, headers=headers)
    resp.raise_for_status()
Example #6
0
    def test_login_and_logout(self):
        s = api.login(self.email, 'lololololol')
        assert not s.is_authenticated

        s = api.login(self.email, self.password)
        assert s.is_authenticated

        s.logout()
        assert not s.is_authenticated
Example #7
0
def load_exams(ip, port, username, password, json_data, login_attempt=10):
    logger = logging.getLogger('main-logger')
    logger.setLevel(logging.INFO)

    logFormatter = logging.Formatter(
        '%(asctime)-15s [ %(levelname)s ] %(message)s')

    consoleHandler = logging.StreamHandler(sys.stdout)
    consoleHandler.setFormatter(logFormatter)
    logger.addHandler(consoleHandler)

    # log_file = 'main-{}.log'.format(strftime('%Y-%m-%d-%H.%M.%S'))
    # fileHandler = logging.FileHandler(mode='a', filename=log_file)
    # fileHandler.setFormatter(logFormatter)
    # logger.addHandler(fileHandler)

    access_token, refresh_token = login(ip, port, username, password)
    failed_data = {}
    failed_data_len = 0
    for org in json_data:
        failed_data[org] = {}
        for faculty in json_data[org]:
            failed_data[org][faculty] = {}
            for group in json_data[org][faculty]:
                for attempt in range(login_attempt):
                    logger.info('Load {} | {} | {}'.format(
                        org, faculty, group))
                    try:
                        add_group(ip, port, access_token, org, faculty, group)
                        logger.info('Add group data')
                    except GroupAlreadyExistError:
                        get_group_info(ip, port, access_token, org, faculty,
                                       group)
                        logger.info('Get group data')
                    except AccessDeniedError:
                        access_token, refresh_token = login(
                            ip, port, username, password)
                        logger.info('Refresh access token')
                        continue
                    break
                logger.info('Load exams')
                schedule = json_data[org][faculty][group]
                for attempt in range(login_attempt):
                    try:
                        result = add_exams(ip, port, access_token, org,
                                           faculty, group, schedule)
                    except AccessDeniedError:
                        access_token, refresh_token = login(
                            ip, port, username, password)
                        continue
                    break
                failed = result['failed']
                if len(failed) != 0:
                    failed_data[org][faculty][group] = failed
                    failed_data_len += len(failed)
                logger.info('Failed: {}'.format(len(failed)))
    return failed_data, failed_data_len
Example #8
0
def start():
    api.login()
    pids = []
    c = config.config
    parsers = monitor.get_parsers()
    for parser in parsers:
        stanza = 'Parser: %s' % parser
        if stanza in c.sections() and c.getboolean(stanza, 'enabled'):
            pid = parsers[parser]()
            pid.start()
            pids.append(pid)
Example #9
0
def main():
    api.login("system", os.getenv("SYSTEM_PWD"))
    headers = api.headers()
    params = {'key': api.API_KEY}

    files = [f for f in os.listdir(BOOK_DIR) if isfile(join(BOOK_DIR, f))]
    for f in files:
        url = api.url(f'/api/file/{f}')
        fullpath = join(BOOK_DIR, f)
        files = {'file': open(fullpath, 'rb')}
        resp = requests.post(url, params=params, headers=headers, files=files)
        resp.raise_for_status()
Example #10
0
def test_delete_file_node():
    api.login("system", os.getenv("SYSTEM_PWD"))
    headers = api.headers()
    params = {'key': api.API_KEY}

    file_url = api.url('/api/file/schema2.txt')

    files = {'file': open(api.schema_path(), 'rb')}
    resp = requests.post(file_url, params=params, headers=headers, files=files)
    resp.raise_for_status()

    node = resp.json()
    file_id = node['uid']
Example #11
0
def index_file(url):
    print(f'indexing {url}')
    # parse file by given URL
    resp = requests.get(url=TIKA_HOST + '/api/tika/parse',
                        params={'url': url},
                        headers=api.stdHeaders,
                        timeout=api.TIMEOUT)
    resp.raise_for_status()
    result = resp.json()

    api.login("system", os.getenv("SYSTEM_PWD"))

    meta = result['metadata']

    id = search_doc(url)
    author = meta.get('author', '')
    if author == '':
        author = meta.get('creator', '')
    author_id = search_person(author)
    if author_id is None:
        person = {'name': author}
        person = api.post('/api/data/person', person)
        author_id = person['uid']

    keyword = split_keywords(meta.get('keyword', ''))
    keyword.extend(split_keywords(meta.get('keywords', '')))
    keyword.append('book')
    keyword = list(set([k.strip() for k in keyword if len(k.strip()) > 0]))

    tags = make_tags(keyword)
    meta.pop('keyword', None)
    meta.pop('keywords', None)

    doc = meta
    doc['url'] = url
    doc['text'] = result['text']
    doc['author'] = {'uid': author_id}
    # todo fix thumbnail generation
    # doc['thumbnail_url'] = thumb(url)

    if id is None:
        doc = api.post('/api/data/document', doc)
        id = doc['uid']
    else:
        doc = api.put(f'/api/data/document/{id}', doc)

    # set tags
    edges = [[id, 'tag', t] for t in tags]
    api.update_graph(edges)
    return doc
Example #12
0
def login():
    user_logging_in = loads(request.data)
    username = user_logging_in.get('username')
    password = user_logging_in.get('password')
    user = api.login(username, password)
    flaskSession['user'] = user.id
    return "Success"
Example #13
0
def menu_update_group(ip, port, username, password):
    print('Введите текущие данные группы:')
    old_org, old_faculty, old_group = input_org_info()

    print('Введите новые (изменённые) данные группы:')
    new_org, new_faculty, new_group = input_org_info()

    print('ВНИМАНИЕ:')
    print('Это действие изменит данные группы на:')
    print('{} -> {}'.format(old_org, new_org))
    print('{} -> {}'.format(old_faculty, new_faculty))
    print('{} -> {}'.format(old_group, new_group))

    if confirm():
        access_token, refresh_token = login(ip, port, username, password)
        tag = update_group(
            ip=ip,
            port=port,
            access_token=access_token,
            old_org=old_org,
            old_faculty=old_faculty,
            old_group=old_group,
            new_org=new_org,
            new_faculty=new_faculty,
            new_group=new_group
        )
        print('Группа обновлена')
        print('Новый тег группы: {}'.format(tag))
    else:
        print('Действие отменено')
Example #14
0
def get_userpass(update, context):
    password = update.message.text
    update.message.delete()
    update.message.reply_text(
        "Password entered successfully. Logging you in...", )
    res = api.login(context.chat_data["username"], password)
    # res will return in the following formats:
    # 1. False - Server Error
    # 2. {'success': True, 'data': {...}} for correct logins
    # 3. {'success': False} for incorrect auth

    if res == False:
        update.message.reply_text(
            "The server encountered an error. Please try again later.", )
        return ConversationHandler.END
    elif res["success"] == True:
        update.message.reply_sticker(_reward_sticker)
        update.message.reply_markdown(
            "*Welcome to Rhabbitica*, _" + res["data"]["username"] +
            "_\nYou may start enjoying Rhabbitica's functions now!"
            "\n\nTo get started: /help", )
        # Init the hourly reminders
        set_reminders(update, context)
        return ConversationHandler.END
    else:
        update.message.reply_markdown(
            "*Your email address / username or password is incorrect. Please try again.*"
            "\n\nPlease key in your Habitica username or email", )
        return SET_USERNAME
Example #15
0
def login():
    """
	Returns a JWT on successful login attempt

	:return: response object with JWT
	"""
    return api.login()
Example #16
0
def main():
    injection = get_rce_bytecode_in_base64().decode().strip()
    username = gen.generate_username()
    password = "******"
    api.register(HOSTNAME, username, password, 1, "aaaaaa", 20, {}, injection)
    cookies = api.login(HOSTNAME, username, password)
    api.info(HOSTNAME, cookies)
Example #17
0
def test_upload():
    api.login("system", os.getenv("SYSTEM_PWD"))
    headers = api.headers()
    params = {'key': api.API_KEY}

    file_url = api.url('/api/file/schema.txt')

    files = {'file': open(api.schema_path(), 'rb')}
    resp = requests.post(file_url, params=params, headers=headers, files=files)
    resp.raise_for_status()

    node = resp.json()
    file_id = node['uid']

    files = {'file': open(api.schema_path(), 'rb')}
    resp = requests.post(file_url, params=params, headers=headers, files=files)
    resp.raise_for_status()

    files = {'file': open(api.schema_path(), 'rb')}
    resp = requests.put(file_url, params=params, headers=headers, files=files)
    resp.raise_for_status()

    # download by path
    resp = requests.get(file_url, params=params, headers=headers)
    resp.raise_for_status()
    print(resp.text)

    # download by id
    file_url2 = api.url(f'/api/file/{file_id}')
    resp = requests.get(file_url2, params=params, headers=headers)
    resp.raise_for_status()
    print(resp.text)

    resp = requests.delete(file_url, params=params, headers=headers)
    resp.raise_for_status()

    resp = requests.get(file_url, params=params, headers=headers)
    assert (resp.status_code == 404)

    file_url2 = api.url(f'/api/file/{file_id}')
    resp = requests.get(file_url2, params=params, headers=headers)
    assert (resp.status_code == 404)
Example #18
0
def account_login(request,
                  template_name='djapps/auth/login.html',
                  redirect_field_name=REDIRECT_FIELD_NAME,
                  request_context = None):
    """
    Displays the login form and handles the login action.
    """
    from djapps.auth.local import forms as authforms
    redirect_to = request.REQUEST.get(redirect_field_name, '')
    # Light security check -- make sure redirect_to isn't garbage.
    if not redirect_to or ' ' in redirect_to:
        redirect_to = settings.LOGIN_REDIRECT_URL
    if request.method == "POST" or request.GET.get("__method__", "") == "post":
        format = djrequest.get_var(request, settings.FORMAT_PARAM, "").strip().lower()
        username = djrequest.get_var(request, "username", "").strip().lower()
        email = djrequest.get_var(request, "email", "").strip().lower()
        password = djrequest.get_var(request, "password", "").strip()

        login_user = None
        if username and password:
            login_user = api.authenticate(request, username, password)
            if login_user is None:
                return api_result(codes.CODE_AUTH_FAILED, "Authentication failed.")
            elif not login_user.is_active:
                return api_result(codes.CODE_ACCOUNT_INACTIVE, "Account is inactive.")
            else:
                api.login(request, login_user)
                if request.session.test_cookie_worked():
                    request.session.delete_test_cookie()

        if not login_user:
            return api_result(codes.CODE_AUTH_FAILED, "Authentication failed."), HttpResponseRedirect(djurls.get_login_url())
        elif not login_user.is_active:
            return api_result(codes.CODE_ACCOUNT_UNCONFIRMED, "Email confirmation not yet recieved.")
        else:
            # valid user
            return api_result(codes.CODE_OK,
                              {'id': str(get_object_id(login_user)),
                               'username': login_user.username}), HttpResponseRedirect(redirect_to)

    request.session.set_test_cookie()
    return {'form': {}, redirect_field_name: redirect_to, }, template_name
Example #19
0
 def login(self):
     self.username = self.loginscreen.username.text
     self.password = self.loginscreen.password.text
     self.host = self.loginscreen.host.text
     login_args = collections.namedtuple('login_args',
                                         ['username', 'password', 'host'])
     args = login_args(self.username, self.password, self.host)
     self.tok = api.login(args)
     self.refresh_monitoring()
     self.sm.current = 'MonitoringScreen'
     pass
Example #20
0
def menu_delete_org(ip, port, username, password):
    org = input('Введите организацию: ')
    print('ВНИМАНИЕ:')
    print('Это действие безвозвратно удалит данные указанной организации, '
          'а также всё расписание занятий и экзаменов принадлежащее ей.')

    if confirm():
        access_token, refresh_token = login(ip, port, username, password)
        delete_org(ip, port, access_token, org)
        print('Организация {} успешно удалена'.format(org))
    else:
        print('Действие отменено')
Example #21
0
def menu_delete_all_orgs(ip, port, username, password):
    print('ВНИМАНИЕ:')
    print(
        'Это действие безвозвратно удалит данные всех организаций, а также всё расписание занятий и экзаменов.'
    )

    if confirm():
        access_token, refresh_token = login(ip, port, username, password)
        delete_all_orgs(ip, port, access_token)
        print('Все организации усешно удалены')
    else:
        print('Действие отменено')
Example #22
0
def menu_get_exams(ip, port, username, password):
    org, faculty, group = input_org_info()
    access_token, refresh_token = login(ip, port, username, password)
    schedule = get_exams(ip, port, access_token, org, faculty, group)

    data = {org: {faculty: {group: schedule}}}
    print('Расписание экзаменов:')
    print(json.dumps(data, indent=4, sort_keys=True, ensure_ascii=False))

    with open('exams.json', 'w') as outfile:
        json.dump(data, outfile, indent=4, sort_keys=True)
    print('Расписание занятий группы сохранено в schedule.json')
Example #23
0
def create_org_structure(ip, port, username, password):
    access_token, refresh_token = login(ip, port, username, password)

    org_struct = {}
    o_res = get_orgs(ip, port, access_token)
    for org in o_res:
        org_struct[org] = {}

        f_res = get_facultys(ip, port, access_token, org)
        for faculty in f_res:
            org_struct[org][faculty] = get_groups(ip, port, access_token, org,
                                                  faculty)
    return org_struct
Example #24
0
def main():
    api.login("system", os.getenv("SYSTEM_PWD"))
    dump("""query tag() {
        tag(func: type(Tag)) {
            uid
            dgraph.type
            text
        }
    }
    """)
    dump("""query doc() {
        doc(func: type(Document)) {
            uid
            dgraph.type
            tag {
                uid
                text
            }
            title
        }
    }
    """)
def getAvailResFromPage(url):
    """
	given an url of a page where video is watched,
	return a list of integers of available heights.
	
	If user is a guest, just return 360, which
	is all they get ;-)
	"""

    if not Prefs['username'] or not Prefs['password']:
        return [360]

    api.login()

    availRes = [360]
    link = url.replace(BASE_URL, "")
    req = HTTP.Request(url=url, immediate=True, cacheTime=3600 * 24)
    html = HTML.ElementFromString(req)

    try:
        small = not isPremium()

    except:
        small = False

    if small is False:
        try:
            if len(html.xpath("//a[@token='showmedia.480p']")) > 0:
                availRes.append(480)
            if len(html.xpath("//a[@token='showmedia.720p']")) > 0:
                availRes.append(720)
            if len(html.xpath("//a[@token='showmedia.1080p']")) > 0:
                availRes.append(1080)

        except Exception, arg:
            Log.Error(
                "####getAvalResFromPage() we got ourselves an exception:")
            Log.Error(repr(Exception) + repr(arg))
Example #26
0
def menu_delete_faculty(ip, port, username, password):
    org = input('Введите организацию: ')
    faculty = input('Введите курс(кафедру): ')
    print('ВНИМАНИЕ:')
    print('Это действие безвозвратно удалит данные указанного курса(кафедры), '
          'а также всё расписание занятий и экзаменов принадлежащее ему.')

    if confirm():
        access_token, refresh_token = login(ip, port, username, password)
        delete_faculty(ip, port, access_token, org, faculty)
        print('Курс(кафедра) {} организации {} успешно удалён'.format(
            faculty, org))
    else:
        print('Действие отменено')
Example #27
0
def main():

    #replace file_name with desired .json file
    with open('fitness-data.json') as data_file:    
        data = json.load(data_file)

    #change username and password here for a different user
    session_token, user_id = api.login(input("Email: "), getpass.getpass())

    #format specific for runkeeper, may need to be changed for other API's
    physical_activity = data['body']['physical_activity']

    for note in physical_activity:
        api.post_note(session_token, user_id, note)
Example #28
0
def login():
    login.username = input("\nUsername: "******"Password: "******"Login com sucesso!")
        login.status = user['Status']
        login.id = user['id_utilizador']

    if user is None:
        print("Username ou Password estao incorretos, tente outra vez")
        login()
    clear()
    menu_user()
Example #29
0
def menu_delete_group(ip, port, username, password):
    org, faculty, group = input_org_info()
    print('ВНИМАНИЕ:')
    print('Это действие безвозвратно удалит данные указанной группы, '
          'а также всё расписание занятий и экзаменов '
          'принадлежащее ей.')

    if confirm():
        access_token, refresh_token = login(ip, port, username, password)
        delete_group(ip, port, access_token, org, faculty, group)
        print('Группа {} курса(кафедры) {} организации {} успешно удалена'.
              format(group, faculty, org))
    else:
        print('Действие отменено')
Example #30
0
def menu_delete_groups_from_json(ip,
                                 port,
                                 username,
                                 password,
                                 login_attempt=10):
    file_name = input('Введите имя json файла: ')

    with open(file_name) as json_file:
        json_data = json.load(json_file)

    print('ВНИМАНИЕ:')
    print(
        'Это действие безвозвратно удалит данные указанных в json файле групп, '
        'а также всё расписание занятий и экзаменов '
        'принадлежащих им.')

    if confirm():
        access_token, refresh_token = login(ip, port, username, password)
        for org_data in json_data:
            org = org_data[0]
            faculty = org_data[1]
            group = org_data[2]

            for attempt in range(login_attempt):
                try:
                    delete_group(ip, port, access_token, org, faculty, group)
                    print(
                        'Группа {} курса(кафедры) {} организации {} успешно удалена'
                        .format(group, faculty, org))
                except AccessDeniedError:
                    access_token, refresh_token = login(
                        ip, port, username, password)
                    continue
                break
    else:
        print('Действие отменено')
Example #31
0
def main(args):
    """ Log in to ordbogen.com and start an interactive shell.

    """
    username = environ['ORDBOGEN_COM_USERNAME']
    password = environ['ORDBOGEN_COM_PASSWORD']

    success, msg = login(username, password)
    if not success:
        puts(msg)
        return

    puts("Ordbogen.com: You are logged in as {u}!\n".format(u=username))
    _printavailabledictionaries()
    _interactive(word=args)
def getQueueList():
    api.login()
    queueURL = BASE_URL + "/queue"
    queueHtml = HTML.ElementFromURL(queueURL, cacheTime=QUEUE_LIST_CACHE_TIME)
    queueList = []
    items = queueHtml.xpath(
        "//div[@class='queue-container clearfix']/ul[@id='sortable']/li")
    for item in items:
        title = item.xpath("./div[@class='title']/a")[0].text.replace(
            "\\\\", "").lstrip("\n ").rstrip(" ")
        seriesId = int(item.xpath(".")[0].get('id').replace("queue_item_", ""))
        try:
            epToPlay = BASE_URL + "/" + item.xpath(
                "./div[@class='play']/button")[0].get('onclick').replace(
                    "window.location=\"\\/", "").split("?t=")[0].replace(
                        "\\/", "/")
        except:
            epToPlay = None
        try:
            seriesStatus = item.xpath("./div[@class='status']/span"
                                      )[0].text.lstrip("\n ").rstrip(" ")
        except:
            seriesStatus = item.xpath("./div[@class='status']")[0].text.lstrip(
                "\n ").rstrip(" ")
        if "Complete" in seriesStatus:
            seriesStatus = "Complete"
        else:
            seriesStatus = "Ongoing"
        queueItem = {
            "title": title,
            "seriesId": seriesId,
            "epToPlay": epToPlay,
            "seriesStatus": seriesStatus
        }
        queueList.append(queueItem)
    return queueList
Example #33
0
def main(args):
    """ Log in to ordbogen.com and start an interactive shell.

    """
    username = environ['ORDBOGEN_COM_USERNAME']
    password = environ['ORDBOGEN_COM_PASSWORD']

    success, msg = login(username, password)
    if not success:
        puts(msg)
        return

    puts("Ordbogen.com: You are logged in as {u}!\n".format(u=username))
    _printavailabledictionaries()
    _interactive(word=args)
Example #34
0
def main(args):
    config = parse_args(args)
    if not (config.dry_run and config.no_refresh):
        if not (config.username and config.password):
            print(
                "--username and --password are required unless --dry-run and --no-refresh"
            )
            sys.exit(1)
        log.info(f"Logging into Nemlig.com as {config.username} ...")
        nemlig.login(config.username, config.password)
    orders.cache_dir = config.cache_dir
    if config.no_refresh:
        log.info("Using previous orders from cache only (--no-refresh)")
    else:
        log.info(f"Downloading {config.max_depth} past orders ...")
        orders.refresh(config.max_depth)
    history = orders.most_recent(config.max_depth)
    for product in products.from_history(history):
        if len(product.ordinalities) < config.window_min:
            log.debug(f"Ignoring '{product.name}' (not enough data)")
            continue
        current_distance = product.ordinalities[0]
        usual_distance = product.median_distance(config.window_max)
        if current_distance < usual_distance:
            log.debug(f"Ignoring '{product.name}' (still in stock)")
            continue
        if current_distance > usual_distance + config.forget_after:
            log.debug(f"Ignoring '{product.name}' (forgotten)")
            continue
        quantity = product.median_quantity(config.window_max)
        log.info(f"Ordering {quantity} x '{product.name}'")
        if not config.dry_run:
            try:
                nemlig.add_product_to_basket(product.id, quantity)
            except nemlig.NemligException as ex:
                log.warn(f"{product.name} -> {ex}")
Example #35
0
def menu_delete_group_exams(ip, port, username, password):
    org, faculty, group = input_org_info()
    print('ВНИМАНИЕ:')
    print(
        'Это действие безвозвратно удалит расписание экзаменов указанной группы.'
    )

    if confirm():
        access_token, refresh_token = login(ip, port, username, password)
        delete_group_exams(ip, port, access_token, org, faculty, group)
        print(
            'Расписание экзаменов '
            'группы (преподавателя) {} курса(кафедры) {} организации {} успешно удалено'
            .format(group, faculty, org))
    else:
        print('Действие отменено')
Example #36
0
def main():
    print("Hello World!")

    # Load settings
    print("Loading settings... ", end="")
    settings = get_settings()
    print("Loaded!")

    # Log in PronoteApi
    print("Login to PronoteAPI... ", end="")
    session = login(settings.api_url, settings.pronote_credentials)
    print(f"Logged!\nConnected to {settings.api_url} (PronoteAPI).")

    user = get_userinfo(session)
    print(f"Logged as {user[0]} ({user[1]}).")

    # Load DB
    print("Loading DB...", end=" ")
    notify, db = load_db()
    print("Loaded!")

    # Get timetable
    print("Itering lessons...")
    timetable = get_daytimetable(session)
    for l in timetable:
        print(str(l), end=" ")
        if l.to_hash() in db.lessons:
            print("(known)")
        else:
            db.lessons.append(l.to_hash())
            if not notify and not l.has_status():
                print("(new / ignored)")
            else:
                notify_lesson(settings.webhook, l)
                print("(new)")
    print("Ended!")

    # Save DB
    print("Saving DB...", end=" ")
    save_db(db)
    print("Saved!")

    # Log out
    print("Logout... ", end="")
    logout(session)
    print("Logged out!")
Example #37
0
def main_list(params):
    plugintools.log("ruyaiptv.main_list "+repr(params))

    if plugintools.get_setting("username")=="":
        settings(params)

    token = api.login( plugintools.get_setting("server") , plugintools.get_setting("username") , plugintools.get_setting("password") )

    if token!="":
        plugintools.set_setting("token",token)
        import os
        plugintools.add_item( action="movies",   title="Movies" , thumbnail = os.path.join(THUMBNAIL_PATH,"thumb0.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart0.jpg") , folder=True )
        plugintools.add_item( action="tvshows",  title="TV Shows" , thumbnail = os.path.join(THUMBNAIL_PATH,"thumb1.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart1.jpg") , folder=True )
        plugintools.add_item( action="livetv",   title="Live TV" , thumbnail = os.path.join(THUMBNAIL_PATH,"thumb2.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True )
        plugintools.add_item( action="livetv_catchup",   title="Catch-up TV" , thumbnail = os.path.join(THUMBNAIL_PATH,"thumb2.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart2.jpg") , folder=True )
    else:
        plugintools.message("RuYa IPTV","Invalid login, check your account in add-on settings")

    import os
    plugintools.add_item( action="settings", title="Settings..." , thumbnail = os.path.join(THUMBNAIL_PATH,"thumb3.png") , fanart=os.path.join(THUMBNAIL_PATH,"fanart3.jpg") , folder=False )

    if plugintools.get_setting("force_advancedsettings")=="true":
        # Ruta del advancedsettings
        import xbmc,xbmcgui,os
        advancedsettings = xbmc.translatePath("special://userdata/advancedsettings.xml")

        if not os.path.exists(advancedsettings):
            # Copia el advancedsettings.xml desde el directorio resources al userdata
            fichero = open( os.path.join(plugintools.get_runtime_path(),"resources","advancedsettings.xml") )
            texto = fichero.read()
            fichero.close()
            
            fichero = open(advancedsettings,"w")
            fichero.write(texto)
            fichero.close()

            plugintools.message("plugin", "A new file userdata/advancedsettings.xml","has been created for optimal streaming")

    if token!="" and plugintools.get_setting("check_for_updates")=="true":
        import updater
        updater.check_for_updates()

    plugintools.set_view( plugintools.LIST )
Example #38
0
    def __init__(self, username, password):
        self.username = username
        api.login(username, password)

        self.groups = api.Groups()
Example #39
0
def oauth_redirect():
    if session.get('access_token'):
        return session['access_token']['access_token']
        return render_template('chatbot.html')
    else:
        return api.login()
Example #40
0
 def test_register_for_class_and_unregister(self):
     with api.login(self.email, self.password) as s:
         s.register_for_class(379333)
         s.unregister_for_class()
import sys
import api

if __name__ == '__main__':

    api.login()

    if len(sys.argv) != 2:
        print 'Query problem using [python retrieve.py ProblemID]'
        exit(-1)

    problemID = sys.argv[1]

    problem = api.get_problem(problemID)
    api.display_problemInfo_detail(problem)
Example #42
0
def login():
    res = api.login(request.form["screenName"],request.form["password"])
    if(res["result"] == False):
        return jsonify(status="ng",message=res["error"])
    session["access_token"] = res["response"]["token"]
    return jsonify(status="ok")
Example #43
0
    def __init__(self, username, password):
        self.username = username

        api.login(username, password)
Example #44
0
    "email": "*****@*****.**",
    "pass": "******"
}

author2 = {
    "email": "*****@*****.**",
    "pass": "******"
}

admin = {
    "email": "*****@*****.**",
    "pass": "******"
}

# as ADMIN
api.login(admin['email'],admin['pass'])

data = {
    "name": "Radnice",
    "classification": "city halls",
    "founding_date": "2014-10-01"
}
r = api.post("organizations",data=data)
org_id = int(api.post_id(r))

data = {
    "name": "Plasy",
    "classification": "city hall",
    "founding_date": "2014-10-01",
    "parent_id": org_id
}