Clean up python samples. Make recollq.py actually usable
This commit is contained in:
parent
3860d01b48
commit
4c75864fd6
@ -1,5 +1,8 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
__doc__ = """
|
__doc__ = """
|
||||||
|
An exemple indexer for an arbitrary multi-document file format.
|
||||||
|
Not supposed to run ''as-is'' or be really useful.
|
||||||
|
|
||||||
''Lookup'' notes file indexing
|
''Lookup'' notes file indexing
|
||||||
|
|
||||||
The file format has text notes separated by lines with a single '%' character
|
The file format has text notes separated by lines with a single '%' character
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
"""An example that uses python tools to parse mbox/rfcxxx format and index
|
||||||
|
messages. Not supposed to run as-is or be really useful"""
|
||||||
|
|
||||||
import mailbox
|
import mailbox
|
||||||
import email.header
|
import email.header
|
||||||
|
|||||||
@ -1,18 +1,28 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
"""A python version of the command line query tool recollq (a bit simplified)
|
||||||
|
The input string is always interpreted as a query language string.
|
||||||
|
This could actually be useful for something after some customization
|
||||||
|
"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
from getopt import getopt
|
||||||
import recoll
|
import recoll
|
||||||
|
|
||||||
allmeta = ("title", "keywords", "abstract", "url", "mimetype", "mtime",
|
allmeta = ("title", "keywords", "abstract", "url", "mimetype", "mtime",
|
||||||
"ipath", "fbytes", "dbytes", "relevancyrating")
|
"ipath", "fbytes", "dbytes", "relevancyrating")
|
||||||
|
|
||||||
def Usage():
|
def Usage():
|
||||||
print >> sys.stderr, "Usage: recollq.py <recoll query>"
|
print >> sys.stderr, "Usage: recollq.py [-c conf] [-i extra_index] <recoll query>"
|
||||||
sys.exit(1);
|
sys.exit(1);
|
||||||
|
|
||||||
def dotest(db, q):
|
|
||||||
query = db.query()
|
|
||||||
|
|
||||||
|
def doquery(db, q):
|
||||||
|
"""Parse and execute query on open db"""
|
||||||
|
# Get query object
|
||||||
|
query = db.query()
|
||||||
|
# Parse/run input query string
|
||||||
nres = query.execute(q)
|
nres = query.execute(q)
|
||||||
|
|
||||||
|
# Print results:
|
||||||
print "Result count: ", nres
|
print "Result count: ", nres
|
||||||
while query.next >= 0 and query.next < nres:
|
while query.next >= 0 and query.next < nres:
|
||||||
doc = query.fetchone()
|
doc = query.fetchone()
|
||||||
@ -23,31 +33,39 @@ def dotest(db, q):
|
|||||||
print abs
|
print abs
|
||||||
print
|
print
|
||||||
|
|
||||||
# End dotest
|
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2:
|
||||||
Usage()
|
Usage()
|
||||||
|
|
||||||
|
confdir=""
|
||||||
|
extra_dbs = []
|
||||||
|
# Snippet params
|
||||||
|
maxchars = 120
|
||||||
|
contextwords = 4
|
||||||
|
# Process options: [-c confdir] [-i extra_db [-i extra_db] ...]
|
||||||
|
options, args = getopt(sys.argv[1:], "c:i:")
|
||||||
|
for opt,val in options:
|
||||||
|
if opt == "-c":
|
||||||
|
confdir = val
|
||||||
|
elif opt == "-i":
|
||||||
|
extra_dbs.append(val)
|
||||||
|
else:
|
||||||
|
print >> sys.stderr, "Bad opt: ", opt
|
||||||
|
Usage()
|
||||||
|
|
||||||
|
# The query should be in the remaining arg(s)
|
||||||
|
if len(args) == 0:
|
||||||
|
print >> sys.stderr, "No query found in command line"
|
||||||
|
Usage()
|
||||||
q = ""
|
q = ""
|
||||||
for word in sys.argv[1:]:
|
for word in args:
|
||||||
q += word + " "
|
q += word + " "
|
||||||
|
|
||||||
print "TESTING WITH .recoll, question: [" + q + "]"
|
print "QUERY: [", q, "]"
|
||||||
db = recoll.connect()
|
db = recoll.connect(confdir=confdir,
|
||||||
db.setAbstractParams(maxchars=120, contextwords=4)
|
extra_dbs=extra_dbs)
|
||||||
dotest(db, q)
|
db.setAbstractParams(maxchars=maxchars, contextwords=contextwords)
|
||||||
|
|
||||||
sys.exit(0)
|
doquery(db, q)
|
||||||
|
|
||||||
print "TESTING WITH .recoll-test"
|
|
||||||
db = recoll.connect(confdir="/Users/dockes/.recoll-test")
|
|
||||||
dotest(db, q)
|
|
||||||
|
|
||||||
print "TESTING WITH .recoll-doc"
|
|
||||||
db = recoll.connect(confdir="/y/home/dockes/.recoll-doc")
|
|
||||||
dotest(db, q)
|
|
||||||
|
|
||||||
print "TESTING WITH .recoll and .recoll-doc"
|
|
||||||
db = recoll.connect(confdir="/Users/dockes/.recoll",
|
|
||||||
extra_dbs=("/y/home/dockes/.recoll-doc",))
|
|
||||||
dotest(db, q)
|
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
"""Example for using the ''searchdata''' structured query interface.
|
||||||
|
Not good for anything except showing/trying the code."""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import recoll
|
import recoll
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user