def list_messages(usr: str): """ Listar los mensajes que un usuario dado puso desde el 1º de mayo de 2018 y, en caso de haber recibido réplicas a esos mensajes, el texto de las réplicas """ query = """prefix res: <http://example.com/resource/> prefix ex: <http://example.com/> prefix class: <http://example.com/class/> prefix prop: <http://example.com/property/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?message ?id ?person ?dt ?txt ?reply ?txtRp WHERE { ?message rdf:type class:Message. ?person rdf:type class:Person. ?message prop:owner ?person. ?person prop:userid ?id. ?message prop:date ?dt. OPTIONAL{?message prop:content ?txt}. OPTIONAL{?message prop:reply ?reply. ?reply prop:content ?txtRp}. FILTER( ?dt > xsd:dateTime("2018-01-24T00:00:40") && ?id = "--user--" )} """ data = search(conn, query.replace('--user--', usr), ['message', 'id', 'person', 'dt', 'txt', 'reply', 'txtRp']) return data
def list_related_countries(): """ Listar los países de los usuarios que han hecho retweet de los mensajes que han puesto usuarios que viven en Colombia """ query = """prefix res: <http://example.com/resource/> prefix ex: <http://example.com/> prefix class: <http://example.com/class/> prefix prop: <http://example.com/property/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?user_origin ?country_origin ?country_reply ?message_origin WHERE { ?message rdf:type class:Message. ?reply rdf:type class:Message. ?person rdf:type class:Person. ?preply rdf:type class:Person. ?message prop:owner ?person. ?message prop:content ?message_origin. ?person prop:userid ?user_origin. ?person prop:country ?country_origin. ?message prop:reply ?reply. ?reply prop:owner ?preply. ?preply prop:country ?country_reply FILTER ( ?country_origin="Colombia") } """ data = search( conn, query, ['user_origin', 'country_origin', 'country_reply', 'message_origin']) return data
def get_origin(msg: str): """ Encontrar el origen de un tweet que fue re-enviado varias veces, dada una de las ocurrencias del reenvío. Listar la fecha del tweet original y el nombre del usuario que lo generó. Tener en cuenta que el retweet puede ser en varios niveles, es decir el Usuario A pone el tweet, el usuario B hace el retweet, el usuario C hace retweet del retweet del usuario B, y así sucesivamente. En ese caso se considera que B y C hicieron retweet del tweet puesto por el usuario A, por lo tanto, el origen es el tweet que puso el usuario A. """ query = """prefix res: <http://example.com/resource/> prefix ex: <http://example.com/> prefix class: <http://example.com/class/> prefix prop: <http://example.com/property/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?org ?msg ?dt ?nm WHERE { ?msg rdf:type class:Message . ?org rdf:type class:Message . ?org prop:date ?dt . ?org prop:owner ?own . ?own prop:name ?nm . ?msg prop:reply ?org . } """ data = search(conn, query.replace('--msg--', usr), ['org', 'msg', 'dt', 'nm']) return data
def search(request): if (request.method == 'POST'): searchString = request.POST['searchParam'] if searchString != '': result = queries.search(searchString) return render(request, 'result.html', {'result': result}) else: return redirect('/') else: return redirect('/')
def search(request): if (request.method == 'POST'): searchString = request.POST['searchParam'] if searchString!='': result = queries.search(searchString) return render(request,'result.html',{'result': result}) else: return redirect('/') else: return redirect('/')
def browseview(): try: if not is_loggedin(session['user_id']): return redirect(url_for("homepage")) except: return redirect(url_for("homepage")) if request.method == 'POST': data = request.form print "Search : ", data['search'] results = queries.search(data['search'], session['user_id']) #print results return render_template('browse.html', results=results) return render_template('browse.html')
def search(): form_data = request.form search = True replacement = { "search": form_data["asksearch"], "marks": '<span class="fancy">{}</span>'.format(form_data['asksearch']) } questions = queries.search(replacement) return render_template("list.html", phrase=form_data["asksearch"], replacement=replacement, questions=questions, search=search)
def list_hashtag(hashtag: str): """ Listar todos los mensajes de un hashtag dado en orden cronológico. """ query = """prefix res: <http://example.com/resource/> prefix ex: <http://example.com/> prefix class: <http://example.com/class/> prefix prop: <http://example.com/property/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?message ?txt ?ht ?dt WHERE { ?message rdf:type class:Message. ?message prop:content ?txt. ?message prop:hashtag ?ht. ?message prop:date ?dt FILTER( ?ht = "#--hashtag--")} ORDER BY DESC(?dt) """ data = search(conn, query.replace('--hashtag--', hashtag), ['message', 'txt', 'ht', 'dt']) return data
def get_followers(usr: str): """ Encontrar la cadena de seguidores de un usuario dado, es decir, los seguidores del usuario, los seguidores de sus seguidores, los seguidores de los seguidores de sus seguidores, etc """ query = """prefix res: <http://example.com/resource/> prefix ex: <http://example.com/> prefix class: <http://example.com/class/> prefix prop: <http://example.com/property/> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?usr ?fll ?ml WHERE { ?usr rdf:type class:Person . ?usr prop:userid ?ml . ?fll rdf:type class:Person . ?usr prop:follower ?fll FILTER ( ?ml = "--user--" ). } """ data = search(conn, query.replace('--user--', usr), ['usr', 'fll', 'ml']) return data
def format_results(lis): for i, r in enumerate(lis): content = '' edit = st.checkbox(r['title'], key=i) st.text('author: ' + r['author'] + ' ' + str(r['author_rep'])) display = st.empty() content = display.markdown(r['body']) if not edit: display.empty() st.title('esteem search dashboard') query = st.text_input('enter a search query') if query: r = search(query) format_results(r['results']) if st.button('get api key status'): r = get_status() st.write( f"You have {r['request_limit'] - r['request_count']} requests left.") # { # "took": 0.062, # "hits": 2, # "results": [ # { # "id": 49194954, # "author": "good-karma", # "permlink": "esteem-surfer-1-0-0-release-79775e065812d",