]>
gitweb.pimeys.fr Git - dtc.git/blob - dtc.py
10 import psycopg2
.extras
15 """Récupère un curseur connecté à la base dtc"""
16 con
= psycopg2
.connect(database
="dtc")
17 cur
= con
.cursor(cursor_factory
=psycopg2
.extras
.DictCursor
)
22 """Insère une quote dans la base"""
24 print "INSERTing %s" % quote
["id"]
25 con
, cur
= getcursor()
26 cur
.execute("INSERT INTO quotes (id, date, quote) VALUES (%(id)s, %(date)s, %(quote)s);",
28 cur
.execute("COMMIT;")
31 """Récupère l'id de la dernière quote enregistrée"""
32 con
, cur
= getcursor()
33 cur
.execute("SELECT MAX(id) AS maxid FROM quotes;")
34 return cur
.fetchone()["maxid"]
37 """Récupère le flux RSS et le formate"""
38 flux
= feedparser
.parse('http://feeds.feedburner.com/bashfr-quotes')
40 for q
in flux
["entries"]:
44 print "FAILED : " + q
["title"]
47 quote
= format(q
["summary_detail"]["value"])
48 quotes
.append({"id" : id, "date" : date
, "quote" : quote
})
53 """Dé-HTML-ise la quote"""
54 raw
= html2text
.unescape(nltk
.clean_html(quote
))
56 raw
= re
.sub(" Votez !$", "", raw
)
59 def get_quotes(first
, last
=None):
60 """Récupère des quotes dans la base."""
63 add
= "AND id <= %(last)s"
64 con
, cur
= getcursor()
65 req
= "SELECT * FROM quotes WHERE id >= %(first)s " + add
+ ";"
66 cur
.execute(req
, {"first" : first
, "last" : last
})
68 l
= [dict(q
) for q
in l
]
71 d
["date"] = d
["date"].strftime("%F %T")
75 """Affiche des quotes"""
76 t
= ("\n" + "_"*80 + "\n").join(["%(id)s (%(date)s)\n%(quote)s" % q
for q
in liste
])
79 if __name__
== "__main__":
81 if sys
.argv
[1] in ["fetch", "update", "pull"]:
84 last
= last_inserted()
91 id2
= int(sys
.argv
[2])
93 if sys
.argv
[2] in ["+", "_"]:
96 print "Le deuxième paramètre doit être un entier ou '+'"
99 quotes
= get_quotes(first
=id, last
=id2
)
100 if "--json" in sys
.argv
:
101 print json
.dumps(quotes
)