synchronization script for awesome lists, git submodules updated
This commit is contained in:
44
code/utils/osg_rejected.py
Normal file
44
code/utils/osg_rejected.py
Normal file
@ -0,0 +1,44 @@
|
||||
"""
|
||||
Handling of rejected file information.
|
||||
"""
|
||||
|
||||
import os
|
||||
import re
|
||||
from utils import constants as c, utils as u
|
||||
|
||||
matcher = re.compile(r'(.*)? \((.*)?\): (.*)') # general structure: name (link, link): description
|
||||
|
||||
|
||||
def read_rejected_file():
|
||||
"""
|
||||
|
||||
:return:
|
||||
"""
|
||||
rejected_file = os.path.join(c.root_path, 'code', 'rejected.txt')
|
||||
text = u.read_text(rejected_file)
|
||||
rejected = []
|
||||
for line in text.split('\n'):
|
||||
print(line)
|
||||
matches = matcher.findall(line)[0] # we know there will be exactly one match on every line
|
||||
name = matches[0].strip()
|
||||
links = matches[1].split(',')
|
||||
links = [link.strip() for link in links]
|
||||
description = matches[2].strip()
|
||||
rejected.append({'Title': name, 'URLs': links, 'Description': description})
|
||||
return rejected
|
||||
|
||||
|
||||
def write_rejected_file(rejected):
|
||||
"""
|
||||
|
||||
:param rejected:
|
||||
"""
|
||||
# sort by name
|
||||
rejected.sort(key=lambda x: str.casefold(x[0]))
|
||||
# expand single items
|
||||
rejected = ['{} ({}): {}'.format(item[0], ', '.join(item[1]), item[2]) for item in rejected]
|
||||
# join with newlines
|
||||
rejected = '\n'.join(rejected)
|
||||
# write to file
|
||||
rejected_file = os.path.join(c.root_path, 'code', 'rejected.txt')
|
||||
u.write_text(rejected_file, rejected)
|
Reference in New Issue
Block a user