# THIS SOFTWARE IS A PART OF FREE COMPETITOR PROJECT # THE FOLLOWING SOURCE CODE I UNDER THE GNU # AGPL LICENSE V3 OR ANY LATER VERSION. # This project is not for simple users, but for # web-masters and a like, so we are counting on # your ability to set it up and running. from modules import search def html(page, json): # This function adds a rendering of the json into the page free = False if "licenses" in json and json["licenses"]: free = True page = page + "\n <h1>" try: page = page + '\n<img src="'+ json["links"]["icon"] + '" alt="Logo" style="width:50px;">' except: pass name = json.get("names",["Unknown"])[0] page = page + "\n" + name page = page + "</h1>" # Few words about it page = page + "<p>"+json.get("comment","")+"</p>" # I want to show nothing else from if it's proprietary if not free: l = json.get("issues", []) page = page +"<h2>Anti-Features / Problems:</h2>" for i in l: page = page + "<br> "+i return page # Links # <table> # <tr> # <th>Company</th> # <th>Contact</th> # <th>Country</th> #</tr> page = page + """ <style> table, th, td { border-right:none; border-left:none; border-bottom:none; border-top:none }</style> """ page = page + "<table><tr>" links = json.get("links", {}) for website in links: if website in ["icon"]: continue link = links[website] page = page + """ <th><form action=\""""+link+"""\"> <button title=\""""+link+"""\" type="submit">"""+website.upper()+"""</button> </form></th> """ page = page + "</tr></table>" # Details categories = {"generic_name":"Features", "licenses":"License(s)", "platforms":"Platforms", "networks_read":"Accesses Data from", "networks_write":"Interacts / Publishes to", "formats_read":"Opens from File-Formats", "formats_write":"Saves to File-Formats", "issues":"Anti-Features / Problems", "interface":"Interface", "languages":"Programming Languages"} for c in categories: l = json.get(c, []) if not l: continue page = page + "<details>" page = page +"<summary>"+categories[c]+":</summary>" for i in l: page = page + " "+i+"<br>" page = page + "</details>" return page def suggestions(page, json): # This function will render suggestions page = page + "<br><br><h1>Replacements:</h1><br><br>" found = search.suggest(json) for i in found: free = False if "licenses" in i[-1] and i[-1]["licenses"]: free = True if not i[0] or i[-1] == json or not free: continue page = page + "<br><br>" page = html(page, i[-1]) return page def search_widget(page): # Adds a search bar to the page page = page + """ <form action="/search" method="GET"> <input type="text" name="item" class="search" placeholder="Name of Software"> <button type="submit">Search</button> </form> """ return page def source_code_link(page): # Adds a source code link page = page + "<br><br><p>This website is under the GNU AGPL license.</p>" page = page + """ <form action=https://notabug.org/jyamihud/FreeCompetitors> <button type="submit">Source Code</button> </form><br><br> """ return page