Added more / Adjusted the rendering to less recommend problematic things
This commit is contained in:
parent
5a9f686081
commit
2f0aeaf9cf
10 changed files with 125 additions and 10 deletions
17
apps/android.json
Normal file
17
apps/android.json
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{"names":["Android"],
|
||||||
|
"comment":"A Mobile Operating System developed mostly by Google.",
|
||||||
|
"links":{"website":"https://www.android.com/",
|
||||||
|
"git":"https://android.googlesource.com/",
|
||||||
|
"wikipedia":"https://en.wikipedia.org/wiki/Android_(operating_system)",
|
||||||
|
"icon":"https://upload.wikimedia.org/wikipedia/commons/3/31/Android_robot_head.svg"},
|
||||||
|
"licenses":["GPL-2.0", "Apache-2.0"],
|
||||||
|
"platforms":["Mobile"],
|
||||||
|
"interface":["Touch"],
|
||||||
|
"networks_read":[],
|
||||||
|
"networks_write":[],
|
||||||
|
"formats_read":[],
|
||||||
|
"formats_write":[],
|
||||||
|
"generic_name":["Mobile Operating System", "Android/Linux"],
|
||||||
|
"issues":["Surveillance",
|
||||||
|
"Includes Non-Free Software",
|
||||||
|
"Relies on Non-Free Services"]}
|
|
@ -1,6 +1,6 @@
|
||||||
{"names":["Dragora GNU/Linux-Libre",
|
{"names":["Dragora GNU/Linux-Libre",
|
||||||
"Dragora"],
|
"Dragora"],
|
||||||
"comment":"Guix comes with thousands of packages which include applications, system tools, documentation, fonts, and other digital goods readily available for installing with the GNU Guix package manager.",
|
"comment":"Dragora is a complete and reliable distribution of the GNU/Linux operating system that is entirely free software.",
|
||||||
"links":{"website":"https://dragora.org/en/index.html",
|
"links":{"website":"https://dragora.org/en/index.html",
|
||||||
"git":"https://notabug.org/dragora/dragora",
|
"git":"https://notabug.org/dragora/dragora",
|
||||||
"wikipedia":"https://en.wikipedia.org/wiki/Dragora",
|
"wikipedia":"https://en.wikipedia.org/wiki/Dragora",
|
||||||
|
|
16
apps/ios.json
Normal file
16
apps/ios.json
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{"names":["iOS"],
|
||||||
|
"comment":"A proprietary Mobile Operating System from Apple. Used in iPhones.",
|
||||||
|
"links":{"website":"apple.com",
|
||||||
|
"wikipedia":"https://en.wikipedia.org/wiki/iOS",
|
||||||
|
"icon":"https://upload.wikimedia.org/wikipedia/commons/a/ab/Icon-Mac.svg"},
|
||||||
|
"platforms":["iPhone", "iPad"],
|
||||||
|
"interface":["iOS"],
|
||||||
|
"networks_read":[],
|
||||||
|
"networks_write":[],
|
||||||
|
"formats_read":[],
|
||||||
|
"formats_write":[],
|
||||||
|
"generic_name":["Mobile Operating System"],
|
||||||
|
"issues":["Surveillance",
|
||||||
|
"Subscription",
|
||||||
|
"Non-Free Software",
|
||||||
|
"DRM"]}
|
18
apps/macos.json
Normal file
18
apps/macos.json
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{"names":["macOS",
|
||||||
|
"OSX",
|
||||||
|
"macOS X"],
|
||||||
|
"comment":"A proprietary Operating System from Apple.",
|
||||||
|
"links":{"website":"apple.com",
|
||||||
|
"wikipedia":"https://en.wikipedia.org/wiki/MacOS",
|
||||||
|
"icon":"https://upload.wikimedia.org/wikipedia/commons/a/ab/Icon-Mac.svg"},
|
||||||
|
"platforms":["PC"],
|
||||||
|
"interface":["macOS"],
|
||||||
|
"networks_read":[],
|
||||||
|
"networks_write":[],
|
||||||
|
"formats_read":[],
|
||||||
|
"formats_write":[],
|
||||||
|
"generic_name":["Operating System"],
|
||||||
|
"issues":["Surveillance",
|
||||||
|
"Subscription",
|
||||||
|
"Non-Free Software",
|
||||||
|
"DRM"]}
|
17
apps/macos.json~
Normal file
17
apps/macos.json~
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{"names":["Windows",
|
||||||
|
"Microsoft Windows"],
|
||||||
|
"comment":"A proprietary Operating System from Microsoft.",
|
||||||
|
"links":{"website":"microsoft.com",
|
||||||
|
"wikipedia":"https://en.wikipedia.org/wiki/Windows",
|
||||||
|
"icon":"https://upload.wikimedia.org/wikipedia/commons/9/94/M_box.svg"},
|
||||||
|
"platforms":["PC"],
|
||||||
|
"interface":["windows"],
|
||||||
|
"networks_read":[],
|
||||||
|
"networks_write":[],
|
||||||
|
"formats_read":[],
|
||||||
|
"formats_write":[],
|
||||||
|
"generic_name":["Operating System"],
|
||||||
|
"issues":["Surveillance",
|
||||||
|
"Subscription",
|
||||||
|
"Non-Free Software",
|
||||||
|
"DRM"]}
|
|
@ -11,4 +11,5 @@
|
||||||
"networks_write":[],
|
"networks_write":[],
|
||||||
"formats_read":[],
|
"formats_read":[],
|
||||||
"formats_write":[],
|
"formats_write":[],
|
||||||
"generic_name":["Operating System", "GNU/Linux"]}
|
"generic_name":["Operating System", "GNU/Linux",
|
||||||
|
"Mobile Operating System"]}
|
||||||
|
|
14
apps/replicant.json
Normal file
14
apps/replicant.json
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{"names":["Replicant"],
|
||||||
|
"comment":"Replicant is a fully free Android distribution running on several devices, a free software mobile operating system putting the emphasis on freedom and privacy/security",
|
||||||
|
"links":{"website":"https://replicant.us/",
|
||||||
|
"git":"https://git.replicant.us/replicant",
|
||||||
|
"wikipedia":"https://en.wikipedia.org/wiki/Replicant_(operating_system)",
|
||||||
|
"icon":"https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/Replicant_logo_alpha.svg/120px-Replicant_logo_alpha.svg.png"},
|
||||||
|
"licenses":["GPL-3.0-or-later"],
|
||||||
|
"platforms":["Mobile"],
|
||||||
|
"interface":["Touch"],
|
||||||
|
"networks_read":[],
|
||||||
|
"networks_write":[],
|
||||||
|
"formats_read":[],
|
||||||
|
"formats_write":[],
|
||||||
|
"generic_name":["Mobile Operating System", "Android/Linux"]}
|
17
apps/windows.json
Normal file
17
apps/windows.json
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{"names":["Windows",
|
||||||
|
"Microsoft Windows"],
|
||||||
|
"comment":"A proprietary Operating System from Microsoft.",
|
||||||
|
"links":{"website":"microsoft.com",
|
||||||
|
"wikipedia":"https://en.wikipedia.org/wiki/Windows",
|
||||||
|
"icon":"https://upload.wikimedia.org/wikipedia/commons/9/94/M_box.svg"},
|
||||||
|
"platforms":["PC"],
|
||||||
|
"interface":["windows"],
|
||||||
|
"networks_read":[],
|
||||||
|
"networks_write":[],
|
||||||
|
"formats_read":[],
|
||||||
|
"formats_write":[],
|
||||||
|
"generic_name":["Operating System"],
|
||||||
|
"issues":["Surveillance",
|
||||||
|
"Subscription",
|
||||||
|
"Non-Free Software",
|
||||||
|
"DRM"]}
|
|
@ -33,14 +33,14 @@ def html(page, json):
|
||||||
page = page + "<p>"+comment+"</p>"
|
page = page + "<p>"+comment+"</p>"
|
||||||
|
|
||||||
# I want to show nothing else from if it's proprietary
|
# I want to show nothing else from if it's proprietary
|
||||||
if not free:
|
if "issues" in json:
|
||||||
|
|
||||||
l = json.get("issues", [])
|
l = json.get("issues", [])
|
||||||
page = page +"<h2>Anti-Features / Problems:</h2>"
|
page = page +"<h2>Anti-Features / Problems:</h2>"
|
||||||
|
|
||||||
for i in l:
|
for i in l:
|
||||||
page = page + "<br> "+i
|
page = page + " "+i+"<br>"
|
||||||
|
|
||||||
|
if not free:
|
||||||
return page
|
return page
|
||||||
|
|
||||||
|
|
||||||
|
@ -87,7 +87,6 @@ def html(page, json):
|
||||||
"networks_write":"Interacts / Publishes to",
|
"networks_write":"Interacts / Publishes to",
|
||||||
"formats_read":"Opens from File-Formats",
|
"formats_read":"Opens from File-Formats",
|
||||||
"formats_write":"Saves to File-Formats",
|
"formats_write":"Saves to File-Formats",
|
||||||
"issues":"Anti-Features / Problems",
|
|
||||||
"interface":"Interface",
|
"interface":"Interface",
|
||||||
"languages":"Programming Languages"}
|
"languages":"Programming Languages"}
|
||||||
|
|
||||||
|
@ -119,16 +118,27 @@ def suggestions(page, json):
|
||||||
for i in found:
|
for i in found:
|
||||||
if i[0] > biggest:
|
if i[0] > biggest:
|
||||||
biggest = i[0]
|
biggest = i[0]
|
||||||
|
more = False
|
||||||
for i in found:
|
for i in found:
|
||||||
free = search.is_free(i[-1])
|
free = search.is_free(i[-1])
|
||||||
|
|
||||||
if not i[0] or i[-1] == json or not free:
|
if not i[0] or i[-1] == json or not free:
|
||||||
continue
|
continue
|
||||||
|
try:
|
||||||
|
frac = int(i[0]/biggest*100)
|
||||||
|
except:
|
||||||
|
frac = 0
|
||||||
|
|
||||||
page = page + "<hr><br>Features match: " + str(int(i[0]/biggest*100)) + "%"
|
if frac < 40 and not more: # Below 40% features match
|
||||||
|
page = page + """<hr><details>
|
||||||
|
<summary><h1 title="Click to show more / less.">Problematic Competitors:</h1></summary>"""
|
||||||
|
more = True
|
||||||
|
|
||||||
|
page = page + "<hr><br>Features match: " + str(frac) + "%"
|
||||||
page = html(page, i[-1])
|
page = html(page, i[-1])
|
||||||
|
|
||||||
|
if more:
|
||||||
|
page = page + "</details>"
|
||||||
return page
|
return page
|
||||||
|
|
||||||
def search_widget(page):
|
def search_widget(page):
|
||||||
|
|
|
@ -88,7 +88,12 @@ def suggest(json_data):
|
||||||
for b in json_data.get(c, []):
|
for b in json_data.get(c, []):
|
||||||
if b in i.get(c, []):
|
if b in i.get(c, []):
|
||||||
score += 1
|
score += 1
|
||||||
|
|
||||||
|
# If software has issues of any kind we move it down.
|
||||||
|
if "issues" in i and score:
|
||||||
|
score = max(0.1, score - len(i["issues"]))
|
||||||
|
|
||||||
|
|
||||||
found.append([score, i])
|
found.append([score, i])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue