def test_get_pages(self): # Test if function returns the correct number of pages # self.assertEqual(get_pages(20, 5), 4) self.assertEqual(get_pages(21, 5), 5) self.assertEqual(get_pages(19, 4), 5) assert type(get_pages(19, 4)) is int
def stop(request, *args, **kwargs): if not request.session.get('is_login', False) or request.session['user_type'] != 'accounts': return redirect("/index") error_msg = '' project_id = utils.get_id(args) page = utils.get_page(args) if request.method == "GET": for id, item in utils.get_projects(request.session['account']): if id == project_id: project_info = item return render(request, "user_projectstop.html", {"project_info":project_info, "project_id":project_id, "page":page , "error_msg": error_msg}) if request.method == "POST": data = { "name": request.POST.get("name"), "leader": request.POST.get("leader"), "teammates": request.POST.get("teammates"), "start": request.POST.get("start"), "cost": request.POST.get("cost"), } if int(data['cost']) < 0: data['cost'] = '0' if not error_msg: error_msg = "项目申停成功" _projects_dict = utils.get_projects(request.session['account']) page_list = utils.get_pages(page, _projects_dict) projects_dict, page, project_id = utils.adjust_info(_projects_dict, page, project_id) steps = utils.get_steps(project_id) step_path = utils.steps_path(utils.get_eva_info(project_id, top=True)) return render(request, "user_projectprocess.html", {"projects_dict": projects_dict, "project_id": project_id, "steps": steps, "step_path": step_path, "page_list": page_list, "page": page, 'error_msg': error_msg})
def summary(request, *args, **kwargs): if not request.session.get( 'is_login', False) or request.session['user_type'] != 'admin': return redirect("/index") error_msg = '' page = utils.get_page(args) # 获取当前页面 _projects_dict = utils.get_all_projects() page_list = utils.get_pages(page, _projects_dict) projects_dict, page, project_id = utils.adjust_info( _projects_dict, page, 1) if request.method == 'GET': return render(request, 'admin_projectsum.html', { 'projects_dict': projects_dict, "page_list": page_list, "page": page }) if request.method == "POST": if request.POST.get("edit"): project_id = int(request.POST.get("edit")) for key, data in projects_dict: if key == project_id: project_data = data return render( request, 'admin_edit.html', { "project_id": project_id, "project_data": project_data, "error_msg": error_msg, "page": page, })
def edit(request, *args, **kwargs): if not request.session.get( 'is_login', False) or request.session['user_type'] != 'information': return redirect("/index") error_msg = '' page = utils.get_page(args) # 获取当前页面 _projects_dict = utils.get_all_projects() page_list = utils.get_pages(page, _projects_dict) projects_dict, page, project_id = utils.adjust_info( _projects_dict, page, 1) if request.method == 'POST': project_id = int(request.POST.get("project_id")) for key, data in projects_dict: if key == project_id: project_data = data data = { "name": request.POST.get('name'), "leader": request.POST.get("leader").strip(), "teammates": request.POST.get("teammates").strip().split(',') if request.POST.get("teammates") else None, "start": request.POST.get("start").strip(), "status": request.POST.get("status").strip(), "process": request.POST.get("process").strip(), "budget": int(request.POST.get("budget").strip()), "real": int(request.POST.get("real").strip()), } data, error_msg = utils.check_error(data, budget=False) if error_msg: return render( request, 'Administrators_edit.html', { "project_id": project_id, "project_data": project_data, "error_msg": error_msg, "page": page, }) if request.POST.get('pass'): # 立项审核通过 data['status'] = "审核中..." data['left'] = data['budget'] - data['real'] elif request.POST.get('reject'): # 立项审核未通过 data['status'] = "未通过" elif request.POST.get('edit'): data['left'] = data['budget'] - data['real'] with open("database/projects.pk", 'rb') as f: _projects_dict = pickle.load(f) for _key in data.keys(): _projects_dict[project_id][_key] = data[_key] with open("database/projects.pk", 'wb') as f: f.write(pickle.dumps(_projects_dict)) return redirect("/info/summary&page=%d" % page)
def initialize(args, request, is_pass=False): error_msg = '' project_id = utils.get_id(args) page = utils.get_page(args) # 获取当前页面 _projects_dict = utils.get_projects(request.session['account'], is_pass) page_list = utils.get_pages(page, _projects_dict) projects_dict, page, project_id = utils.adjust_info(_projects_dict, page, project_id) return error_msg, page, page_list, projects_dict, project_id
def get(self, PAGE_RE): username = self.get_username() login = True if username else False pages = utils.get_pages(PAGE_RE) self.render('/templates/historypage.html', login=login, username=username, pages=pages)
def summary(request, *args, **kwargs): if not request.session.get('is_login', False) or request.session['user_type'] != 'finance': return redirect("/index") error_msg = '' page = utils.get_page(args) # 获取当前页面 _projects_dict = utils.get_all_projects() page_list = utils.get_pages(page, _projects_dict) projects_dict, page, project_id = utils.adjust_info(_projects_dict, page, 1) if request.method == 'GET': return render(request, 'financeoff_projectsum.html', {'projects_dict':projects_dict, "page_list":page_list, "page":page})
def initialize(args, request, is_pass=False): error_msg = '' project_id = utils.get_id(args) page = utils.get_page(args) # 获取当前页面 if is_pass: _projects_dict = utils.get_pass_projects() else: _projects_dict = utils.get_all_projects() page_list = utils.get_pages(page, _projects_dict) projects_dict, page, project_id = utils.adjust_info(_projects_dict, page, project_id) return error_msg, page, page_list, projects_dict, project_id
async def ranking(ctx): ranking = get_activity_ranking(ctx.guild.id) string = "" for i, (user, time) in enumerate(ranking): tier = get_tier(i) if tier not in string: string += f"**{tier}:**\n" name = user.split("#")[0] string += f"{name}: {pretty_time_delta(time)}\n" if string == "": string = "Todavía no hay un ranking." lines_per_page = 17 pages = get_pages(string, lines_per_page) embeds = [discord.Embed().add_field(name="Ranking", value=page) for page in pages] paginator = Pagination.CustomEmbedPaginator(ctx, auto_footer=True) paginator.add_reaction('⏪', "back") paginator.add_reaction('⏩', "next") await paginator.run(embeds)
def add_pics(self, count=1): supported_ext = ['png', 'jpg', 'jpeg'] for i in range(count): tmp = utils.get_pages(start_url, params={'page': self.cur_page}) for item in tmp: url = item['data-large-file-url'] if item['data-file-ext'] not in supported_ext: # print(f"File is not supported. | {item['data-file-ext']}") continue pic_name = utils.get_name(url) if pic_name not in self.names.keys(): self.names[pic_name] = len(self.names) queue.append({ "img_url": url, # "img_orig": utils.get_page(url), "img_orig": None, "page": self.cur_page, "num": self.names[pic_name], "name": pic_name, "tags": item['data-tags'], }) self.cur_page = self.cur_page + 1
def user_edit(request, *args, **kwargs): if not request.session.get('is_login', False) or request.session['user_type'] != 'accounts': return redirect("/index") error_msg = '' page = utils.get_page(args) # 获取当前页面 _projects_dict = utils.get_projects(request.session['account']) page_list = utils.get_pages(page, _projects_dict) projects_dict, page, project_id = utils.adjust_info(_projects_dict, page, 1) if request.method == 'POST': project_id = int(request.POST.get("project_id")) for key, data in projects_dict: if key == project_id: project_data = data data = { "name": request.POST.get("name").strip(), "leader": request.POST.get("leader").strip(), "teammates": request.POST.get("teammates").strip().split(',') if request.POST.get("teammates") else None } data, error_msg = utils.check_error(data, budget=False) if error_msg: return render(request, 'user_edit.html', { "project_id": project_id, "project_data": project_data, "error_msg": error_msg, "page": page, }) else: if request.FILES.get('file'): utils.save_file(id, request, save_name="applyingFile", new=True) project_data['name'] = data['name'] project_data['leader'] = data['leader'] project_data['teammates'] = data['teammates'] with open("database/projects.pk", 'rb') as f: _projects_dict = pickle.load(f) _projects_dict[project_id] = project_data with open("database/projects.pk", 'wb') as f: f.write(pickle.dumps(_projects_dict)) return redirect("/account/summary&page=%d" % page)
import sys import os import logging import utils priority = "priority" page_owners = "owners" if __name__ == "__main__": logging.basicConfig(filename=utils.get_logfile(), level=utils.log_level) utils.log_intro(__file__) base_req = "{}/events?fields=place,description,end_time,event_times,id,interested_count,maybe_count,start_time,attending_count,name&time_filter=upcoming&include_cancelled=false" graph = utils.get_facebook_graph() pages = utils.get_pages() all_events = {} for page in pages: page_priority = pages[page] discovery_req = base_req.format(page) event_list = graph.get_object(discovery_req) while True: for event in event_list["data"]: ev_id = event['id'] owners_list = [page] new_priority = page_priority if ev_id in all_events: logging.debug( "Event id {} has multiple owners. Combining information"
import re import psycopg2 import utils import time import random from lxml import html ppdai_username,session_requests = utils.login() pages_count = utils.get_pages(session_requests,"http://www.ppdai.com/moneyhistory?Type=3&Time=180") print(pages_count) conn = psycopg2.connect("dbname=test user=test password=test port=5434 host=127.0.0.1") pg_cursor = conn.cursor() def get_url(page_count): return "http://www.ppdai.com/moneyhistory?Type=3&Time=180&page={}".format(page_count) def get_my_biddings(url): print("processing {} page of ".format(url)) result = session_requests.get(url) tree = html.fromstring(result.text) trs = tree.xpath("//table/tr")[1:] for tr in trs: tds = tr.xpath(".//td") if len(tds) > 0: td_time = tds[0].text.replace(",","") td_money = tds[2].text.replace(",", "") money = int(re.compile("\d+").findall(td_money)[0]) td_bidding_id = tds[5].find("./a").attrib["href"] bidding_id=re.compile("\d+").findall(td_bidding_id)[0] result = [td_time,money,bidding_id]
def recipes(username): # Get All Recipes recipes = mongo.db.recipes all_recipes = recipes.find().sort("_id", 1) recipe_list = list(all_recipes) # Pagination Settings offset = 0 limit = int(request.args.get('limit')) #Get Count count = len(recipe_list) #Get Pages And Generate URL List pages = get_pages(count, limit) url_list = generate_pagination_links(offset, limit, pages, 'recipes', 'null', username) #Get _id of Last Item on a Page starting_position = request.args.get('offset') last_id = recipe_list[int(starting_position)]['_id'] #Sort Tables sort_default = recipes.find({ '_id': { '$gte': last_id } }).sort([("_id", 1)]).limit(limit) sort_country = recipes.find({ '_id': { '$gte': last_id } }).sort([("country", 1), ("name", 1)]).limit(limit) sort_name = recipes.find({ '_id': { '$gte': last_id } }).sort([("name", 1)]).limit(limit) sort_upvotes = recipes.find({ '_id': { '$gte': last_id } }).sort([("upvotes", pymongo.DESCENDING), ("name", 1)]).limit(limit) sort_downvotes = recipes.find({ '_id': { '$gte': last_id } }).sort([("downvotes", pymongo.DESCENDING), ("name", 1)]).limit(limit) sort_author = recipes.find({ '_id': { '$gte': last_id } }).sort([("author", 1), ("name", 1)]).limit(limit) return render_template("recipes.html", author=sort_author, default=sort_default, name=sort_name, upvotes=sort_upvotes, downvotes=sort_downvotes, country=sort_country, url_list=url_list, pages=pages, username=username)
def results(username, search): # Get All Recipes recipes = mongo.db.recipes found_recipes = recipes.find({"$text": {"$search": str(search)}}) # Pagination Settings limit = int(request.args.get('limit')) offset = 0 #Get Count count_list = [] for doc in found_recipes: count_list.append(doc) count = len(count_list) #If No Results Found if len(count_list) < 1 or not search: return render_template('noresults.html', username=username) #Get Pages And Generate URL List pages = get_pages(count, limit) url_list = generate_pagination_links(offset, limit, pages, 'search', search, username) #Get _id of Last Item on a Page dynamic_position = request.args.get('offset') starting_id = recipes.find({"$text": {"$search": str(search)}}).sort('_id') last_id = starting_id[int(dynamic_position)]['_id'] #Sort Tables sort_default = recipes.find({ "$and": [{ '_id': { '$gte': last_id } }, { "$text": { "$search": str(search) } }] }).sort([('_id', pymongo.DESCENDING)]).limit(limit) sort_country = recipes.find({ "$and": [{ '_id': { '$gte': last_id } }, { "$text": { "$search": str(search) } }] }).sort([("country", 1), ("name", 1)]).limit(limit) sort_name = recipes.find({ "$and": [{ '_id': { '$gte': last_id } }, { "$text": { "$search": str(search) } }] }).sort([("name", 1)]).limit(limit) sort_upvotes = recipes.find({ "$and": [{ '_id': { '$gte': last_id } }, { "$text": { "$search": str(search) } }] }).sort([("upvotes", pymongo.DESCENDING), ("name", 1)]).limit(limit) sort_downvotes = recipes.find({ "$and": [{ '_id': { '$gte': last_id } }, { "$text": { "$search": str(search) } }] }).sort([("downvotes", pymongo.DESCENDING), ("name", 1)]).limit(limit) sort_author = recipes.find({ "$and": [{ '_id': { '$gte': last_id } }, { "$text": { "$search": str(search) } }] }).sort([("author", 1), ("name", 1)]).limit(limit) return render_template("results.html", default=sort_default, count=count, url_list=url_list, pages=pages, search=search, country=sort_country, name=sort_name, upvotes=sort_upvotes, downvotes=sort_downvotes, author=sort_author, username=username)
def display_pages(): """ Show options of all the pages a user manages """ pages = utils.get_pages(g.graph) return render_template('display.html', app_id=FB_APP_ID,app_name=FB_APP_NAME, user=g.user, pages = pages)
td_money = tds[1].text.replace(",","") money = [float(x) for x in (re.compile("[0-9.]+").findall(td_money))] #print(td_money,money) td_delay_days=tds[3].text.replace(",","") delay_days = [int(x) for x in (re.compile("\d+").findall(td_delay_days))] #print(td_delay_days,delay_days) bidding_id = tds[0].findall("./span")[1].attrib["listingid"] #print(bidding_id) yield [bidding_id]+money+delay_days def get_page_url(pagecount): return "http://invest.ppdai.com/account/blacklist?PageIndex={}&IsCalendarRequest=0".format(pagecount) pages_count = utils.get_pages(session_requests,"http://invest.ppdai.com/account/blacklist") pg_cursor.execute("delete from ppdai_blacklist where user_name=''".format(ppdai_username)) for x in range(pages_count): url = get_page_url(x+1) for row in get_delayed_bidding(url): print(row) row.insert(0, ppdai_username) row_tuple = tuple(row) sql = """insert into ppdai_blacklist (user_name,bidding_id,overdue,returned,total,overdue_days,max_overdue_days) values ({},{},{},{},{},{},{})""".format(*row_tuple) print(sql) pg_cursor.execute(sql) conn.commit() conn.close()
def show_threads(board): urls = get_thread_urls(get_pages(board)) if urls is not None: return render_template('home.html', urls=urls, board=board) else: return render_template('404.html', board=board)