@@ -4,50 +4,94 @@ import argparse
4
4
from loklak import Loklak
5
5
from pprint import pprint
6
6
import os
7
+ def main ():
8
+ parser = argparse .ArgumentParser ()
7
9
8
- parser = argparse .ArgumentParser (description = "Python wrapper around the loklak API." )
9
- parser .add_argument ('-s' , '--search' , nargs = '+' , help = 'Search API Wrapper which helps to query loklak for JSON results.' )
10
- parser .add_argument ('-t' , '--status' , action = 'store_true' , help = 'Status API Wrapper for the loklak status check.' )
11
- parser .add_argument ('-st' , '--suggest' , nargs = '+' , help = 'Suggestions API Wrapper , Works better with local loklak instance.' )
12
- parser .add_argument ('-c' , '--crawler' , action = 'store_true' , help = 'Crawler API Wrapper on Loklak to crawl for tweets for a particular crawl depth.' )
13
- parser .add_argument ('-hl' , '--hello' , action = 'store_true' , help = 'Loklak status check API.' )
14
- parser .add_argument ('-g' , '--geocode' , help = 'Geocode API for geolocation based information.' )
15
- parser .add_argument ('-p' , '--peers' , action = 'store_true' , help = 'Loklak API for peers connected on the distributed network.' )
16
- parser .add_argument ('-pg' , '--pushgeojson' , action = 'store_true' , help = 'Public API to push geojson objects to the loklak server.' )
17
- parser .add_argument ('-u' , '--user' , help = 'User API to show twitter user information.' )
18
- parser .add_argument ('-m' , '--map' , help = 'Map Visualization render using Loklak service.' )
19
- parser .add_argument ('-md' , '--markdown' , help = 'Markdown conversion API to render markdown as image using Loklak.' )
20
- args = parser .parse_args ()
21
-
22
- loklak = Loklak ()
23
- if args .search :
24
- pprint (loklak .search (args .search ))
25
- elif args .status :
26
- pprint (loklak .status ())
27
- elif args .suggest :
28
- print (args .suggest )
29
- pprint (loklak .suggest (args .suggest ))
30
- elif args .crawler :
31
- pass
32
- elif args .hello :
33
- pprint (loklak .hello ())
34
- elif args .geocode :
35
- pprint (loklak .geocode (args .geocode .split (', ' )))
36
- elif args .peers :
37
- pprint (loklak .peers ())
38
- elif args .pushgeojson :
39
- pass
40
- elif args .user :
41
- params = args .user .split ()
42
- pprint (loklak .search (* params ))
43
- elif args .map :
44
- data = loklak .get_map (args .map .split (',' )[0 ],
45
- args .map .split (',' )[1 ].strip ())
46
- with open (os .path .join (os .getcwd (), 'map.png' ), 'wb' ) as f :
47
- f .write (data )
48
- elif args .markdown :
49
- data = loklak .get_markdown (args .markdown )
50
- with open (os .path .join (os .getcwd (), 'markdown.png' ), 'wb' ) as f :
51
- f .write (data )
52
- else :
53
- print ('Choose API method.' )
10
+ subparsers = parser .add_subparsers (help = 'Python wrapper around the loklak API' , dest = 'command' )
11
+
12
+ search_parser = subparsers .add_parser ('search' , help = 'Search API Wrapper which helps to query loklak for JSON results.' )
13
+ search_parser .add_argument ('query' , action = 'store' , help = 'Query term' )
14
+ search_parser .add_argument ('--since' , action = 'store' , help = 'Only messages after the date (including the date) <date>=yyyy-MM-dd or yyyy-MM-dd_HH:mm' )
15
+ search_parser .add_argument ('--until' , action = 'store' , help = 'Only messages before the date (excluding the date) <date>=yyyy-MM-dd or yyyy-MM-dd_HH:mm' )
16
+ search_parser .add_argument ('--from_user' , action = 'store' , help = 'Only messages published by the user' )
17
+ search_parser .add_argument ('--count' , action = 'count' , help = 'Result count' )
18
+
19
+ status_parser = subparsers .add_parser ('status' , help = 'Status API Wrapper for the loklak status check.' )
20
+ status_parser .add_argument ('--get_status' , action = 'store_true' , default = "true" , help = 'Get complete status' )
21
+
22
+ suggest_parser = subparsers .add_parser ('suggest' , help = 'Suggestions API Wrapper , Works better with local loklak instance.' )
23
+ suggest_parser .add_argument ('query' , action = 'store' , help = 'Query term' )
24
+ suggest_parser .add_argument ('--since' , action = 'store' , help = 'Only messages after the date (including the date) <date>=yyyy-MM-dd or yyyy-MM-dd_HH:mm' )
25
+ suggest_parser .add_argument ('--until' , action = 'store' , help = 'Only messages before the date (excluding the date) <date>=yyyy-MM-dd or yyyy-MM-dd_HH:mm' )
26
+ suggest_parser .add_argument ('--order' , choices = ['asc' , 'desc' ], default = 'asc' , help = 'Result count' )
27
+ suggest_parser .add_argument ('--orderby' , choices = ['retrieval_next' , 'query_count' ], help = 'A field name of the query index schema' )
28
+ suggest_parser .add_argument ('--count' , action = 'count' , help = 'Result count' )
29
+
30
+ crawler_parser = subparsers .add_parser ('crawler' , help = 'Crawler API Wrapper on Loklak to crawl for tweets for a particular crawl depth.' )
31
+ crawler_parser .add_argument ('--crawl' , action = 'store_true' , default = "true" , help = 'Get status of loklak API' )
32
+
33
+ hello_parser = subparsers .add_parser ('hello' , help = 'Loklak status check API' )
34
+ hello_parser .add_argument ('--get_hello_status' , action = 'store_true' , default = "true" , help = 'Get Loklak API health status' )
35
+
36
+ geocode_parser = subparsers .add_parser ('geocode' , help = 'Geocode API for geolocation based information.' )
37
+ geocode_parser .add_argument ('--places' , action = 'store' , help = '<comma-separated strings>, a list of place names' )
38
+
39
+ peer_parser = subparsers .add_parser ('peers' , help = 'Loklak API for peers connected on the distributed network.' )
40
+ peer_parser .add_argument ('--get_peers' , action = 'store_true' , default = "true" , help = 'Get Loklak peers connected' )
41
+
42
+ hello_parser = subparsers .add_parser ('pushgeojson' , help = 'Public API to push geojson objects to the loklak server' )
43
+ hello_parser .add_argument ('--get_pushgeojson' , action = 'store_true' , default = "true" , help = 'Push objects' )
44
+
45
+ user_parser = subparsers .add_parser ('user' , help = 'User API to show twitter user information.' )
46
+ user_parser .add_argument ('screen_name' , action = 'store' , help = 'Twitter screen name of the user' )
47
+ user_parser .add_argument ('--followers' , action = 'store' , help = 'Followers of the user' )
48
+ user_parser .add_argument ('--following' , action = 'store' , help = 'Accounts the user is following' )
49
+
50
+ map_parser = subparsers .add_parser ('map' , help = 'Map Visualization render using Loklak service.' )
51
+ map_parser .add_argument ('latitude' , action = 'store' , help = 'Latitude value' )
52
+ map_parser .add_argument ('longitude' , action = 'store' , help = 'Longitude value' )
53
+ map_parser .add_argument ('--width' , action = 'store' , default = '500' , help = 'Width' )
54
+ map_parser .add_argument ('--height' , action = 'store' , default = '500' , help = 'Height' )
55
+ map_parser .add_argument ('--zoom' , action = 'count' , default = '8' , help = 'Zoom value' )
56
+ map_parser .add_argument ('text' , action = 'store' , help = 'Value of text like Hello' )
57
+
58
+ markdown_parser = subparsers .add_parser ('markdown' , help = 'Markdown conversion API to render markdown as image using Loklak.' )
59
+ markdown_parser .add_argument ('text' , action = 'store' , help = 'Text to be printed, markdown possible' )
60
+ markdown_parser .add_argument ('--color_text' , action = 'store' , default = "000000" , help = '6-character hex code for the color' )
61
+ markdown_parser .add_argument ('--color_background' , action = 'store' , default = "ffffff" , help = '6-character hex code for the color' )
62
+ markdown_parser .add_argument ('--padding' , action = 'count' , default = "10" , help = 'Space around text' )
63
+ markdown_parser .add_argument ('--uppercase' , action = 'store_true' , default = "true" , help = 'If true the text is printed UPPERCASE' )
64
+
65
+ args = parser .parse_args ()
66
+ loklak = Loklak ()
67
+ if args .command == "search" :
68
+ pprint (loklak .search (args .query , args .since , args .until , args .from_user , args .count ))
69
+ elif args .command == "status" :
70
+ pprint (loklak .status ())
71
+ elif args .command == "suggest" :
72
+ pprint (loklak .suggest (args .query , args .count , args .order , args .orderby , args .since , args .until ))
73
+ elif args .command == "crawler" :
74
+ pass
75
+ elif args .command == "hello" :
76
+ pprint (loklak .hello ())
77
+ elif args .command == "geocode" :
78
+ pprint (loklak .geocode (args .places .split (', ' )))
79
+ elif args .command == "peers" :
80
+ pprint (loklak .peers ())
81
+ elif args .command == "pushgeojson" :
82
+ pass
83
+ elif args .command == "user" :
84
+ pprint (loklak .search (args .screen_name .split (), args .followers , args .following ))
85
+ elif args .command == "map" :
86
+ data = loklak .get_map (args .latitude , args .longitude , args .width , args .height , args .zoom , args .text )
87
+ with open (os .path .join (os .getcwd (), 'map.png' ), 'wb' ) as f :
88
+ f .write (data )
89
+ elif args .command == "markdown" :
90
+ data = loklak .get_markdown (args .text , args .color_text , args .color_background , args .padding , args .uppercase )
91
+ with open (os .path .join (os .getcwd (), 'markdown.png' ), 'wb' ) as f :
92
+ f .write (data )
93
+ else :
94
+ print ('Choose API method.' )
95
+
96
+ if __name__ == '__main__' :
97
+ main ()
0 commit comments