-
Notifications
You must be signed in to change notification settings - Fork 0
/
OTL_licenses.py
62 lines (55 loc) · 3.38 KB
/
OTL_licenses.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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/env python
#tested with geckodriver v0.18; must be added to path
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import csv
import sys
import re
def main(input, output):
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
browser = webdriver.Firefox(capabilities=firefox_capabilities)
outputFile = open(output, 'w')
writer = csv.writer(outputFile, doublequote=True, escapechar='\\', lineterminator='\r')
with open(input, 'r') as f:
reader = csv.reader(f)
for row in reader:
result = row
if 'http' not in row[len(row)-1]:
result.append('LICENSE')
result.append('540FIELD')
writer.writerow(result)
else:
url = row[len(row)-1]
browser.get(url)
license = browser.find_element_by_class_name(
'Badge-Condition').text
license = str.replace(license, u'\n', ' :: ')
license = str.replace(license, u'\r', ' :: ')
result.append(license)
if "Attribution-NonCommercial-ShareAlike :: CC BY-NC-SA" in license:
field540 = "This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA) License.$uhttps://creativecommons.org/licenses/by-nc-sa/4.0/legalcode"
elif "Attribution-NonCommercial-NoDerivs :: CC BY-NC-ND" in license:
field540 = "This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs (CC BY-NC-ND) License.$uhttps://creativecommons.org/licenses/by-nc-nd/4.0/legalcode"
elif "Attribution-NonCommercial :: CC BY-NC" in license:
field540 = "This work is licensed under a Creative Commons Attribution-NonCommercial (CC BY-NC) License.$uhttps://creativecommons.org/licenses/by-nc/4.0/legalcode"
elif "Attribution-NoDerivs :: CC BY-ND" in license:
field540 = "This work is licensed under a Creative Commons Attribution-NoDerivs (CC BY-ND) License.$uhttps://creativecommons.org/licenses/by-nd/4.0/legalcode"
elif "Attribution-ShareAlike :: CC BY-SA" in license:
field540 = "This work is licensed under a Creative Commons Attribution-ShareAlike (CC BY-SA) License.$uhttps://creativecommons.org/licenses/by-sa/4.0/legalcode"
elif "Attribution :: CC BY" in license:
field540 = "This work is licensed under a Creative Commons Attribution (CC BY) License.$uhttps://creativecommons.org/licenses/by/4.0/legalcode"
elif "Free Documentation License :: GNU" in license or "Free Documentation License (GNU)" in license:
field540 = "This work is licensed under a GNU Free Documentation License.$uhttp://www.gnu.org/licenses/fdl.html"
else:
field540 = ""
result.append(field540)
writer.writerow(result)
browser.close()
outputFile.close()
if __name__ == "__main__":
main(sys.argv[1], sys.argv[2])