def game(): session['title'], session['hrefs'] = getPage(session['article']) if session['title'] == 'Philosophie': with open("score.txt", "a") as d: d.write( str( str(session['article']) + ',' + str(session['score']) + ',' + 'False') + '\n') d.close() flash( "Bravo, vous avez gagné ! Votre score est de : " + str(session['score']), "Won") return redirect('/') if session['title'] == None: flash("Dommage, c'est perdu... La page demandée n'existe pas.", "Lost") return redirect('/') if session['hrefs'] == []: flash("Dommage c'est perdu... La page demandée n'a pas de liens.", "Lost") return redirect('/') else: session['score'] += 1 return render_template('game.html', title=session['title'], hrefs=session['hrefs'])
def game(): title_page, list_href = getPage(session["article"]) # Stockage du résultat dans la session, pour être en mesure de vérifier # que le lien sélectionné par l'utilisateur proviendra bien de cette liste session["list_href"] = list_href # Cas ou la page demandée n'existe pas if title_page is None: flash("/!\\ La page wikipédia demandée n'existe pas /!\\", "error") return redirect('/') # Cas ou aucun lien n'a été remonté elif not list_href: flash("/!\\ La page wikipédia demandée ne possède aucun lien /!\\", "error") return redirect('/') # Cas le joueur a trouvé la page philosophie elif title_page.lower() == "philosophie": flash( "/!\\ Bravo vous avez gagné la partie en {} coup(s) /!\\".format( session["score"]), "success") session["score"] = 0 #return render_template('index.html') return redirect('/') else: return render_template('game.html', title=title_page, href=list_href, score=session["score"])
def game(): session['title'], session['hrefs'] = getPage(session['article']) if session['title'] == 'Philosophy': with open("score.txt", "a") as d: d.write( str( str(session['article']) + ',' + str(session['score']) + ',' + 'False') + '\n') d.close() flash("You won ! Your score is : " + str(session['score']), "Won") return redirect('/') if session['title'] == None: flash("The desired page " + session['article'] + " does not exist.", "Lost") return redirect('/') if session['hrefs'] == []: flash("The desired page has no hyper-links.", "Lost") return redirect('/') else: session['score'] += 1 session['article'] = session['title'] return render_template('game.html', title=session['article'], hrefs=session['hrefs'])
def play_game(): global cache if 'current_article' in session: article = session['current_article'] else: return redirect('/') if (article in cache.keys()): title = article aList = cache[article] #print('In cache') else: title, aList = getPage(article) cache[title] = aList # if (title != article): # Ne pas faire ceci car Philosophique se retrouvera dans le cache # et session['current_article'] pourra contenir ainsi 'Philosophique ' # cache[article] = aList if (session['score'] == 0): session['current_article'] = title session['article_redirect'] = title if (aList == None): print('None') flash(u'La page demandée n’existe pas.', 'erreur') flash(u' Nous vous avons redirigé sur la page d\'acceuil.', 'erreur') return render_template('index.html') if (len(aList) == 0): flash(u'Il n\'existe pas de lien sur la page que vous avez demandée.', 'erreur') flash(u' Nous vous avons redirigé sur la page d\'acceuil.', 'erreur') return render_template('index.html') return render_template('game.html', currentTitle=title, items=aList)
def test_wenger(): title_test, links_test = getPage("Arsène Wenger") assert(title_test == "Arsène Wenger") assert(links_test == ["22 octobre en sport", "1949 en football", "Strasbourg", "Football", "France", "Défenseur (football)", "1963 en football", "1981 en football", "Entraîneur", "Association sportive de Mutzig"]) print("Test getPage Wenger OK")
def newgame(): title = request.form['start'] session['article'] = title session['score'] = 0 if getPage(title)[0] == 'Philosophie': flash("You can't start with Philosophie") return redirect('/') if 'Philosophie' in getPage(title)[1]: flash( "You can't start with this world because it redirects to Philosophie" ) return redirect('/') if getPage(title)[1] == []: flash('You loose: no link in this page') return redirect('/') else: return redirect('/game')
def testFina3(self): article = "Fondo Strategico Italiano" links_gold = [ 'Fonds de placement', 'Fonds souverain', 'Bulgari', 'LVMH', 'Parmalat', 'Lactalis', "Fonds stratégique d'investissement", 'Cassa depositi e prestiti', 'Fintecna', 'Avio' ] title, links = getpage.getPage(article) self.assertEqual(links, links_gold)
def move(): session['article'] = request.form['destination'] if session['article'] == 'Philosophie': flash('You win') return redirect('/') if getPage(session['article'])[1] == []: flash('You loose: no link in this page') return redirect('/') else: return redirect('/game')
def game(): session['title'], session['hrefs'] = getPage(session['article']) session['score'] = session['score'] + 1 if session['article'] == 'Philosophie': flash("La partie est gagnée !", 'won') return redirect('/') if session['hrefs'] == []: flash("Plus de liens ! Vous avez perdu. ", 'lost') return redirect('/') return render_template('game.html', title=session['title'], links=session['hrefs'])
def game(): title = session['article'] title,links = getPage(title) session['article'] = title if(title == "Philosophy" and session['score']!=0): flash("Congratulations You Won!!!","mes") return redirect("/") if not links: if session['score'] == 0: flash("The Requested Page Does Not Exists!!","error") return redirect("/") flash("You Lost The Game Because You Reached A Page With No Out-Links!!","mes") return redirect("/") return render_template('game.html', title = title, links = links)
def move(): previousPage = request.form['currentPage'] t , links = getPage(previousPage) if previousPage!= session['article']: flash("Your Move Was Ignored Because The Game Was Progressed In A Different Window!!","error") return redirect("/game") title = request.form['choice'] if not title in links: flash("Illegal Move!!","error") return redirect("/game") score = session['score'] session['score'] = score + 1 session['article'] = title return redirect("/game")
def newgame(): title = request.form['start'] session['article'] = title session['score'] = 0 if getPage(session['article'])[0] == 'Philosophie': flash("Vous ne pouvez pas commencer par le mot 'Philosophie'", 'philo') return redirect('/') if getPage(session['article'])[0] == 'philosophie': flash("Vous ne pouvez pas commencer par le mot 'Philosophie'", 'philo2') return redirect('/') if 'philosophie' in getPage(session['article'])[0]: flash("Saisir un autre mot ne contenant pas le mot 'Philosophie'", 'erreur') return redirect('/') if getPage(session['article'])[1] == []: flash("Pas de lien ! Recommencez avec un autre mot :( ", 'lien') return redirect('/') else: return redirect('/game')
def game(): page = session['article'] title, items = getPage(page) score = session['score'] if title == "Philosophie" and score == 0: flash('Tricheur! (tu sors!)') return render_template('index.html') elif title == "Philosophie": flash('Gagné! (score: %s)' % score) return render_template('index.html') elif title is None: flash('Aucun article trouvé!') return render_template('index.html') return render_template('game.html', title=title, items=items)
def testTopic(topic, verbose=False): page, links = getPage(topic) error = None if links is None: if verbose: print("topic does not exist") error = 'Le sujet {} n\'est pas traité dans Wikipedia'.format(topic) elif len(links) == 0: if verbose: print("no link") error = 'Pas de lien de trouvé dans la page {}'.format(page) else: if verbose: print("topic exists") return page, links, error
def game(): try: title, links = getPage(session.get('article')) if len(links) == 0: raise ValueError(f"Perdu! {title} n'a pas de pages suivantes") if session['score'] == 0 and title == 'Philosophie': raise ValueError(f"Départ de {title} n'est pas autorisé") session['current_links'] = links session['trace'].append(title) return render_template('game.html', title=title, links=links) except ValueError as e: session['score'] = 0 flash(str(e), 'error') return redirect('/')
def game(): # session['title'] , session['content'] = getPage(session['article']) # return render_template('game.html') try: session['title'], session['content'] = getPage(session['article']) # si contenue vide, amène à aucune page if not session['content']: flash('It does not lead to other pages, you loose', 'warning') return render_template('index.html') else: session['new_score'] = session['score'] return render_template('game.html') # la page de départ amène nulle part except TypeError: flash('The page you request does not exist', 'error') return render_template('index.html')
def game(): request = session['article'] #request = request.capitalize() # met la 1ere lettre d'un mot (ou ensemble de mots) en majuscule # Retiré car dangeureux.. ex: 'Thierry Lhermite' existe mais pas 'Thierry lhermite' # De même, si on utilisait title(), qui met en majuscule toutes les premières lettres des mots d'un ensemble, # on aurait également des soucis : par ex. 'Langue des signes' existe mais pas 'Langue Des Signes' if request in cache: title, links = cache[request] else: title, links = getPage(request, limit=10) cache[request] = (title, links) session['title'] = title session['links'] = links # # Verif que le cache marche bien # session['cache'] = cache if not title: flash("L'article {} n'existe pas. Retentez avec un autre nom.".format(request)) session['win'] = False return redirect('/') elif not links: if request != title: flash("Perdu ! L'article {} redirige vers {}, \ mais cet article ne renvoie aucun lien...".format(request, title)) else: flash("Perdu ! L'article {} ne renvoie aucun lien...".format(request)) session['win'] = False return redirect('/') elif title == 'Philosophie': if session['score'] == 0: flash("L'article {} redirige directement vers Philosophie. \ Essayez un autre article.".format(request)) session['win'] = False else: # en cours de jeu, choisit lien qui redirige sur Philosphie (par ex. Empirisme > Philosophique) if session['score'] > 1: coup_s = "coups" else : coup_s = "coup" flash("Vous ne vous y attendiez pas, mais vous venez de gagner en {} {} !\ En effet, l'article {} redirige \ directement vers Philosophie.".format(session['score'], coup_s, request)) session['win'] = True return redirect('/') else: return render_template('game.html')
def game(): global cache if session['article'] in cache: liste, title = cache[session['article']], session['article'] return render_template('game.html', title=title, links=liste, cache=cache) else: liste, title = getPage(session['article']) cache[title] = liste if liste: return render_template('game.html', title=title, links=liste, cache=cache) else: flash('Vous avez perdu') return redirect(url_for('index'))
def game(): # recherche dans le cache if session['article'] in cache.keys(): session['title'], session['content'] = cache[session['article']] return render_template('game.html', message="Game Started !") else: # appel à l'API session['title'], session['content'] = getPage(session['article']) # verification du retour de l'API if session['content'] == []: if session['score'] > 0: flash('You Lose !', 'lose') flash('Final Score : ' + str(session['score']), 'lose') else: flash('Try another research !', 'other') return redirect('/') elif session['title'] is None: flash('Page inexistante !', 'lose') else: cache[session['article']] = [session['title'], session['content']] return render_template('game.html', message="Enjoy !")
def game(): global cheat cheat += 1 global current_links if (session['article'] == "Philosophie"): mes = "Félicitation vous avez gagné en " + str( session['score']) + ' coups' flash(mes, category='message') return redirect('/') else: title, links = getPage(session['article']) current_links = [x[0] for x in links] current = title if (len(links) == 0): return render_template( 'index.html', message= "Ohlala! Pas de lien depuis cette page, vous avez perdu :'( ") session['links'] = links return render_template('game.html', cheat=cheat, current=current)
def new_game(): global cheat cheat = 0 global current_links current_links = [] session['article'] = request.form['start'] session['score'] = 0 first_page_title, first_page_links = getPage(session['article']) first_page_links = [x[1] for x in first_page_links] if (str(session['article']).lower() == "philosophie"): message = "Un peu trop simple de commencer par Philosophie" return render_template('index.html', message=message) elif (first_page_title == None): message = "Votre page n'éxiste pas" return render_template('index.html', message=message) elif (len(first_page_links) == 0): message = "La page demandée ne comporte pas de liens" return render_template('index.html', message=message) elif ("Philosophie" in first_page_links): message = "Votre page de départ contient déjà un lien vers Philosophie" return render_template('index.html', message=message) else: return redirect('/game')
def game(title=None, items=None, score=None): if session["article"] in cache.keys(): title1, items1 = cache[session["article"]] session["test_cache"] = 1 else: session["test_cache"] = 0 title1, items1 = getPage(session["article"]) if title1 == "Philosophie": flash("C'est un peu de la triche...", 'not_error') session["score"] = 1 return redirect('/') if title1 == "": flash("La page n'existe pas, retournez à l'école", "error") return redirect('/') elif not items1: flash('Aucun résultat, vous êtes très nul.', "error") return redirect('/') cache[session["article"]] = title1, items1 return render_template('game.html', title=title1, items=items1, score=session["score"])
def game(): session['score'] += 1 title, links = getPage(session['article']) return render_template('game.html', title=title, links=links)
def testQ3content1(self): article = "Bonjour" link = "Salutation" _, links = getpage.getPage(article) self.assertTrue(self.containsThatContains(links, link))
def get_page_from_fenlei(): fenleis=getFenlei() for fenlei in fenleis: getPage(fenlei)
import requests from bs4 import BeautifulSoup url = 'https://list.winxuan.com/1101' from getpage import getPage list = getPage() def getNum(): for i in range(len(list)): url = list[i][0] res = requests.get(url).text soup = BeautifulSoup(res,'html.parser') try: div = soup.find_all('div',class_='sg-commentpage')[0] except: print('丢失页面') num = int(div.find_all('a')[-2].text) print(num) getNum()
def testQ3title(self): article = "Bonjour" title, _ = getpage.getPage(article) self.assertEqual(title, "Bonjour")
def move_link(): global cache score_page = int(request.form.get('score', 0)) linkChoice = request.form.get('linkChoice', "") if (score_page != int(session['score']) ): # controle sur l'utilisation de plusieurs onglets if (linkChoice != session['current_article']): flash(u'Attention vous avez déja progressé sur un autre onglet.', 'erreur') flash( u'Si vous souhaitez recommencer une nouvelle partie, remplir le formulaire ci-dessous sinon ouvrez la page http://localhost:5000/game pour continuer la partie', 'erreur') return render_template('index.html') else: title = linkChoice aList = cache[linkChoice] else: session['score'] = int(session['score']) + 1 # controle sur la modification de formulaire avec les outils de developpement previous_article = session['current_article'] if (linkChoice not in cache[previous_article]): flash(u'Vous avez essayé de tricher petit MALIN!!!!.', 'erreur') flash(u' Réessayez en étant honnète :) .', 'erreur') return render_template('game.html', currentTitle=previous_article, items=cache[previous_article]) if (linkChoice == session['article_redirect']): flash( u'BRAVO!!!! Tous les chemins mènent à ' + str(session['article_redirect']) + ', votre SCORE:' + str(session['score']), 'succes') return render_template('index.html') #print("linkChoice: "+linkChoice) if (linkChoice in cache.keys()): title = linkChoice aList = cache[linkChoice] #print('In cache') else: title, aList = getPage(linkChoice) cache[title] = aList if (title != linkChoice): cache[linkChoice] = aList #print('Not In cache') session['current_article'] = title #print(aList) if (aList == None): #print('None') flash(u'La page demandée n’existe pas.', 'erreur') flash(u' Nous vous avons redirigé sur la page d\'acceuil.', 'erreur') return render_template('index.html') if (len(aList) == 0): flash(u'Il n\'existe pas de lien sur la page que vous avez demandée.', 'erreur') flash(u' Nous vous avons redirigé sur la page d\'acceuil.', 'erreur') return render_template('index.html') return render_template('game.html', currentTitle=title, items=aList)
def testQ3content3(self): article = "Seine" link = "Troyes" _, links = getpage.getPage(article) self.assertTrue(self.containsThatContains(links, link))
def get_page_from_fenlei(): fenleis = getFenlei() for fenlei in fenleis: getPage(fenlei)
def testQ3content2(self): article = "Bonjour" link = "Correspondance" _, links = getpage.getPage(article) self.assertTrue(self.containsThatContains(links, link))