-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcore
More file actions
executable file
·45 lines (32 loc) · 1.13 KB
/
core
File metadata and controls
executable file
·45 lines (32 loc) · 1.13 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/python
import sys
from os.path import basename
from pandas import read_html
from tabulate import tabulate
CONFERENCE_URL = 'http://portal.core.edu.au/conf-ranks/?by=all&sort=arank&search='
JOURNAL_URL = 'http://portal.core.edu.au/jnl-ranks/?by=all&sort=arank&search='
def usage(program_name: str): sys.exit(f'Usage: {basename(program_name)} [j] <search-string>')
def err(msg: str): sys.exit(f'[!] {msg}')
def search(url: str, query: str):
try:
df = read_html(f'{url}{query}')[0]
except:
err('query unsuccessful')
try: # conference columns
result = df[['Rank', 'Acronym', 'Title']]
except: # journal columns
result = df[['Rank', 'Title']]
print(tabulate(result, headers='keys', tablefmt='plain', showindex=False))
if __name__ == '__main__':
if len(sys.argv) < 2:
usage(sys.argv[0])
if sys.argv[1] == 'j':
search_url = JOURNAL_URL
query_start = 2
else:
search_url = CONFERENCE_URL
query_start = 1
if len(sys.argv) >= query_start:
search(search_url, '+'.join(sys.argv[query_start:]))
else:
usage(sys.argv[0])