aboutsummaryrefslogtreecommitdiff
path: root/khaganatForum.py
diff options
context:
space:
mode:
Diffstat (limited to 'khaganatForum.py')
-rw-r--r--khaganatForum.py131
1 files changed, 131 insertions, 0 deletions
diff --git a/khaganatForum.py b/khaganatForum.py
new file mode 100644
index 0000000..75cd0be
--- /dev/null
+++ b/khaganatForum.py
@@ -0,0 +1,131 @@
+# Doku Wiki
+#
+# @website https://www.dokuwiki.org/
+# @provide-api yes
+# (https://www.dokuwiki.org/devel:xmlrpc)
+#
+# @using-api no
+# @results HTML
+# @stable yes
+# @parse (general) url, title, content
+
+from urllib import urlencode
+from lxml.html import fromstring
+from searx.engines.xpath import extract_text
+from datetime import datetime
+
+# engine dependent config
+categories = ['general'] # TODO , 'images', 'music', 'videos', 'files'
+paging = False
+language_support = False
+number_of_results = 5
+
+# search-url
+# Doku is OpenSearch compatible
+base_url = 'https://khaganat.net'
+search_url = '/forum/index.php?action=search2&{query}'
+#search_url = '/wikhan/?do=search'\
+# '&{query}'
+# TODO '&startRecord={offset}'\
+# TODO '&maximumRecords={limit}'\
+
+
+# do search-request
+def request(query, params):
+
+ params['url'] = base_url +\
+ search_url.format(query=urlencode({'search': query}))
+
+ return params
+
+
+# get response from search-request
+def response(resp):
+ results = []
+
+ doc = fromstring(resp.text)
+
+ # parse results
+ # Quickhits
+ for r in doc.xpath('//div[@id="main_content_section"]/div/div/div'):
+ try:
+ res_url = r.xpath('.//div[@class="topic_details floatleft"]/h5/a/@href')[-1]
+ except:
+ continue
+
+ if not res_url:
+ continue
+
+ #content = extract_text(r.xpath('.//div[@class="list_posts"]'))
+ title = extract_text(r.xpath('.//div[@class="topic_details floatleft"]/h5'))
+
+
+
+ #dataBrut = extract_text(r.xpath('.//span[@class="date"]'))
+
+ #data = dataBrut.split('-')
+
+
+
+ #date = '-'.join(dataS)
+ #adatetime = data[1]
+ #data = adatetime.split(',')
+ #date = data[1]
+ #Thedate = dataBrut.split(' ')
+ #TheDay = Thedate[1].split(',')
+
+
+ #if Thedate[0] == "Jan":
+ # ThedateMonth = 1
+ #elif Thedate[0] == "Feb":
+ # ThedateMonth = 2
+ #elif Thedate[0] == "Mar":
+ # ThedateMonth = 3
+ #elif Thedate[0] == "Apr":
+ # ThedateMonth = 4
+ #elif Thedate[0] == "May":
+ # ThedateMonth = 5
+ #elif Thedate[0] == "Jun":
+ # ThedateMonth = 6
+ #elif Thedate[0] == "Jul":
+ # ThedateMonth = 7
+ #elif Thedate[0] == "Aug":
+ # ThedateMonth = 8
+ #elif Thedate[0] == "Sep":
+ # ThedateMonth = 9
+ #elif Thedate[0] == "Oct":
+ # ThedateMonth = 10
+ #elif Thedate[0] == "Nov":
+ # ThedateMonth = 11
+ #else:
+ # ThedateMonth = 12
+
+ # append result
+ results.append({'title': title,
+ 'content': "",
+ 'url': base_url + res_url})
+ #'publishedDate': datetime(int(Thedate[2]), ThedateMonth, int(TheDay[0]), 3, 1, 42)})
+
+
+
+ # Search results
+ #for r in doc.xpath('//dl[@class="search_results"]/*'):
+ # try:
+ # if r.tag == "dt":
+ # res_url = r.xpath('.//a[@class="wikilink1"]/@href')[-1]
+ # title = extract_text(r.xpath('.//a[@class="wikilink1"]/@title'))
+ # elif r.tag == "dd":
+ # content = extract_text(r.xpath('.'))
+
+ # append result
+ # results.append({'title': title,
+ # 'content': content,
+ # 'url': base_url + res_url})
+ # except:
+ # continue
+
+ # if not res_url:
+ # continue
+
+ # return results
+ return results