-
Notifications
You must be signed in to change notification settings - Fork 16
/
atom.py
30 lines (26 loc) · 1.02 KB
/
atom.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from portality.models import Journal
from copy import deepcopy
class AtomRecord(Journal):
records = {
"query" : {
"bool" : {
"must" : [
{"term" : {"admin.in_doaj" : True}},
# { "range" : { "last_updated" : {"gte" : "<from date>"} } }
{ "range" : { "created_date" : {"gte" : "<from date>"} } }
]
}
},
"size" : 20,
# "sort" : {"last_updated" : {"order" : "desc"}}
"sort" : {"created_date" : {"order" : "desc"}}
}
def list_records(self, from_date, list_size):
q = deepcopy(self.records)
# q["query"]["bool"]["must"][1]["range"]["last_updated"]["gte"] = from_date
q["query"]["bool"]["must"][1]["range"]["created_date"]["gte"] = from_date
q["size"] = list_size
# do the query
# print json.dumps(q)
results = self.query(q=q)
return [AtomRecord(**hit.get("_source")) for hit in results.get("hits", {}).get("hits", [])]