Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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('/')
Esempio n. 5
0
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('/')
Esempio n. 6
0
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')
Esempio n. 7
0
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)
Esempio n. 8
0
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
Esempio n. 9
0
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",