thiswebshoprules

git clone https://git.tarina.org/thiswebshoprules
Log | Files | Refs

commit d820f62218266283c78d24e7ae89237bbe59c031
parent d9eabbdc1264d029c5b19a15cc38cbee2e541246
Author: rob <rob@tarina.org>
Date:   Tue, 10 Jan 2023 22:29:08 +0200

wtf

Diffstat:
Dpublic_html/static/git/atom.xml | 100-------------------------------------------------------------------------------
Dpublic_html/static/git/commit/453a29c9d95ecd2fa75ee4fa4e394b7b3aa7c09f.html | 185-------------------------------------------------------------------------------
Dpublic_html/static/git/commit/6cebe6413cba1ca3d3267f60bb3b80f9ad1fb591.html | 705-------------------------------------------------------------------------------
Dpublic_html/static/git/commit/f51d79da0711ee549da7c615cc1ad62f6ffc7f88.html | 261-------------------------------------------------------------------------------
Dpublic_html/static/git/commit/f88862ebd308659e5ac56b166f8534cfe486f3ae.html | 552-------------------------------------------------------------------------------
Dpublic_html/static/git/commit/fa47ab78e071920bb57c203271b3b28595340324.html | 541-------------------------------------------------------------------------------
Dpublic_html/static/git/file/public_html/static/fonts/Now-Black.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/Now-Bold.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/Now-Light.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/Now-Medium.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/Now-Regular.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/Now-Thin.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/OFL-FAQ.txt.html | 451-------------------------------------------------------------------------------
Dpublic_html/static/git/file/public_html/static/fonts/Terminus-Bold.ttf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/Terminus-Italic.ttf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/Terminus.ttf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Black.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Bold.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Light.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Medium.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Regular.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Thin.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/__MACOSX/._OFL-FAQ.txt.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/fonts/Terminus-Bold.ttf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/fonts/Terminus-Italic.ttf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/fonts/Terminus.ttf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/fonts/lmmono10-italic.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/fonts/lmmono10-regular.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/fonts/roberta.ttf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/lmmono10-italic.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/lmmono10-regular.otf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/now.zip.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/fonts/roberta.ttf.html | 21---------------------
Dpublic_html/static/git/file/public_html/static/scrollcookie.js.html | 31-------------------------------
Dpublic_html/static/git/file/public_html/static/style.css.html | 250-------------------------------------------------------------------------------
Dpublic_html/static/git/file/public_html/templates/base.html.html | 40----------------------------------------
Dpublic_html/static/git/file/public_html/templates/bigpic.html.html | 27---------------------------
Dpublic_html/static/git/file/public_html/templates/bitcoin.html.html | 28----------------------------
Dpublic_html/static/git/file/public_html/templates/categories.html.html | 35-----------------------------------
Dpublic_html/static/git/file/public_html/templates/checkout.html.html | 51---------------------------------------------------
Dpublic_html/static/git/file/public_html/templates/index.html.html | 86-------------------------------------------------------------------------------
Dpublic_html/static/git/file/public_html/templates/l33t.html.html | 36------------------------------------
Dpublic_html/static/git/file/public_html/templates/login.html.html | 35-----------------------------------
Dpublic_html/static/git/file/public_html/templates/op.html.html | 36------------------------------------
Dpublic_html/static/git/file/public_html/templates/operator.html.html | 26--------------------------
Dpublic_html/static/git/file/public_html/templates/pay.html.html | 49-------------------------------------------------
Dpublic_html/static/git/file/public_html/templates/paybtc.html.html | 58----------------------------------------------------------
Dpublic_html/static/git/file/public_html/templates/payln.html.html | 59-----------------------------------------------------------
Dpublic_html/static/git/file/public_html/templates/payment.html.html | 49-------------------------------------------------
Dpublic_html/static/git/file/public_html/templates/payments.html.html | 55-------------------------------------------------------
Dpublic_html/static/git/file/public_html/templates/pending.html.html | 72------------------------------------------------------------------------
Dpublic_html/static/git/file/public_html/templates/products.html.html | 51---------------------------------------------------
Dpublic_html/static/git/file/public_html/templates/shipping.html.html | 38--------------------------------------
Dpublic_html/static/git/file/public_html/templates/thankyou.html.html | 41-----------------------------------------
Dpublic_html/static/git/file/server.py.html | 698-------------------------------------------------------------------------------
Dpublic_html/static/git/files.html | 72------------------------------------------------------------------------
Dpublic_html/static/git/index.html | 19-------------------
Dpublic_html/static/git/log.html | 28----------------------------
Dpublic_html/static/git/refs.html | 26--------------------------
Dpublic_html/static/git/stats/activity.html | 49-------------------------------------------------
Dpublic_html/static/git/stats/arrow-down.gif | 0
Dpublic_html/static/git/stats/arrow-none.gif | 0
Dpublic_html/static/git/stats/arrow-up.gif | 0
Dpublic_html/static/git/stats/authors.html | 41-----------------------------------------
Dpublic_html/static/git/stats/commits_by_author.dat | 5-----
Dpublic_html/static/git/stats/commits_by_author.plot | 15---------------
Dpublic_html/static/git/stats/commits_by_author.png | 0
Dpublic_html/static/git/stats/commits_by_year.dat | 1-
Dpublic_html/static/git/stats/commits_by_year.plot | 11-----------
Dpublic_html/static/git/stats/commits_by_year.png | 0
Dpublic_html/static/git/stats/commits_by_year_month.dat | 1-
Dpublic_html/static/git/stats/commits_by_year_month.plot | 14--------------
Dpublic_html/static/git/stats/commits_by_year_month.png | 0
Dpublic_html/static/git/stats/day_of_week.dat | 7-------
Dpublic_html/static/git/stats/day_of_week.plot | 11-----------
Dpublic_html/static/git/stats/day_of_week.png | 0
Dpublic_html/static/git/stats/domains.dat | 1-
Dpublic_html/static/git/stats/domains.plot | 10----------
Dpublic_html/static/git/stats/domains.png | 0
Dpublic_html/static/git/stats/files.html | 31-------------------------------
Dpublic_html/static/git/stats/files_by_date.dat | 5-----
Dpublic_html/static/git/stats/files_by_date.plot | 15---------------
Dpublic_html/static/git/stats/files_by_date.png | 0
Dpublic_html/static/git/stats/gitstats.cache | 0
Dpublic_html/static/git/stats/gitstats.css | 145-------------------------------------------------------------------------------
Dpublic_html/static/git/stats/hour_of_day.dat | 24------------------------
Dpublic_html/static/git/stats/hour_of_day.plot | 11-----------
Dpublic_html/static/git/stats/hour_of_day.png | 0
Dpublic_html/static/git/stats/index.html | 24------------------------
Dpublic_html/static/git/stats/lines.html | 28----------------------------
Dpublic_html/static/git/stats/lines_of_code.dat | 5-----
Dpublic_html/static/git/stats/lines_of_code.plot | 14--------------
Dpublic_html/static/git/stats/lines_of_code.png | 0
Dpublic_html/static/git/stats/lines_of_code_by_author.dat | 5-----
Dpublic_html/static/git/stats/lines_of_code_by_author.plot | 15---------------
Dpublic_html/static/git/stats/lines_of_code_by_author.png | 0
Dpublic_html/static/git/stats/month_of_year.dat | 12------------
Dpublic_html/static/git/stats/month_of_year.plot | 11-----------
Dpublic_html/static/git/stats/month_of_year.png | 0
Dpublic_html/static/git/stats/sortable.js | 324-------------------------------------------------------------------------------
Dpublic_html/static/git/stats/tags.html | 23-----------------------
Dpublic_html/static/git/style.css | 154-------------------------------------------------------------------------------
Dpublic_html/static/git/tags.xml | 6------
103 files changed, 0 insertions(+), 6355 deletions(-)

diff --git a/public_html/static/git/atom.xml b/public_html/static/git/atom.xml @@ -1,100 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<feed xmlns="http://www.w3.org/2005/Atom"> -<title>getdafuckouttahere.net, branch HEAD</title> -<subtitle>Unnamed repository; edit this file &#39;description&#39; to name the repository. -</subtitle> -<entry> -<id>453a29c9d95ecd2fa75ee4fa4e394b7b3aa7c09f</id> -<published>2021-10-26T17:26:34Z</published> -<updated>2021-10-26T17:26:34Z</updated> -<title type="text">better handling for sessionkey and pendinginfo</title> -<link rel="alternate" type="text/html" href="commit/453a29c9d95ecd2fa75ee4fa4e394b7b3aa7c09f.html" /> -<author> -<name>rob</name> -<email>rob@tarina.org</email> -</author> -<content type="text">commit 453a29c9d95ecd2fa75ee4fa4e394b7b3aa7c09f -parent f88862ebd308659e5ac56b166f8534cfe486f3ae -Author: rob &lt;rob@tarina.org&gt; -Date: Tue, 26 Oct 2021 20:26:34 +0300 - -better handling for sessionkey and pendinginfo - -</content> -</entry> -<entry> -<id>f88862ebd308659e5ac56b166f8534cfe486f3ae</id> -<published>2021-10-16T05:33:40Z</published> -<updated>2021-10-16T05:33:40Z</updated> -<title type="text">yes</title> -<link rel="alternate" type="text/html" href="commit/f88862ebd308659e5ac56b166f8534cfe486f3ae.html" /> -<author> -<name>rob</name> -<email>rob@tarina.org</email> -</author> -<content type="text">commit f88862ebd308659e5ac56b166f8534cfe486f3ae -parent f51d79da0711ee549da7c615cc1ad62f6ffc7f88 -Author: rob &lt;rob@tarina.org&gt; -Date: Sat, 16 Oct 2021 08:33:40 +0300 - -yes - -</content> -</entry> -<entry> -<id>f51d79da0711ee549da7c615cc1ad62f6ffc7f88</id> -<published>2021-10-16T05:26:35Z</published> -<updated>2021-10-16T05:26:35Z</updated> -<title type="text">more stuff</title> -<link rel="alternate" type="text/html" href="commit/f51d79da0711ee549da7c615cc1ad62f6ffc7f88.html" /> -<author> -<name>rob</name> -<email>rob@tarina.org</email> -</author> -<content type="text">commit f51d79da0711ee549da7c615cc1ad62f6ffc7f88 -parent fa47ab78e071920bb57c203271b3b28595340324 -Author: rob &lt;rob@tarina.org&gt; -Date: Sat, 16 Oct 2021 08:26:35 +0300 - -more stuff - -</content> -</entry> -<entry> -<id>fa47ab78e071920bb57c203271b3b28595340324</id> -<published>2021-10-16T05:17:51Z</published> -<updated>2021-10-16T05:17:51Z</updated> -<title type="text">werks</title> -<link rel="alternate" type="text/html" href="commit/fa47ab78e071920bb57c203271b3b28595340324.html" /> -<author> -<name>rob</name> -<email>rob@tarina.org</email> -</author> -<content type="text">commit fa47ab78e071920bb57c203271b3b28595340324 -parent 6cebe6413cba1ca3d3267f60bb3b80f9ad1fb591 -Author: rob &lt;rob@tarina.org&gt; -Date: Sat, 16 Oct 2021 08:17:51 +0300 - -werks - -</content> -</entry> -<entry> -<id>6cebe6413cba1ca3d3267f60bb3b80f9ad1fb591</id> -<published>2021-10-16T04:45:16Z</published> -<updated>2021-10-16T04:45:16Z</updated> -<title type="text">first</title> -<link rel="alternate" type="text/html" href="commit/6cebe6413cba1ca3d3267f60bb3b80f9ad1fb591.html" /> -<author> -<name>rob</name> -<email>rob@tarina.org</email> -</author> -<content type="text">commit 6cebe6413cba1ca3d3267f60bb3b80f9ad1fb591 -Author: rob &lt;rob@tarina.org&gt; -Date: Sat, 16 Oct 2021 07:45:16 +0300 - -first - -</content> -</entry> -</feed> diff --git a/public_html/static/git/commit/453a29c9d95ecd2fa75ee4fa4e394b7b3aa7c09f.html b/public_html/static/git/commit/453a29c9d95ecd2fa75ee4fa4e394b7b3aa7c09f.html @@ -1,185 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>better handling for sessionkey and pendinginfo - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../style.css" /> -</head> -<body> -<table><tr><td><a href="../../"><img src="../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../log.html">Log</a> | <a href="../files.html">Files</a> | <a href="../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<pre><b>commit</b> <a href="../commit/453a29c9d95ecd2fa75ee4fa4e394b7b3aa7c09f.html">453a29c9d95ecd2fa75ee4fa4e394b7b3aa7c09f</a> -<b>parent</b> <a href="../commit/f88862ebd308659e5ac56b166f8534cfe486f3ae.html">f88862ebd308659e5ac56b166f8534cfe486f3ae</a> -<b>Author:</b> rob &lt;<a href="mailto:rob@tarina.org">rob@tarina.org</a>&gt; -<b>Date:</b> Tue, 26 Oct 2021 20:26:34 +0300 - -better handling for sessionkey and pendinginfo - -<b>Diffstat:</b> -<table><tr><td class="M">M</td><td><a href="#h0">public_html/templates/index.html</a></td><td> | </td><td class="num">2</td><td><span class="i">+</span><span class="d">-</span></td></tr> -<tr><td class="M">M</td><td><a href="#h1">public_html/templates/pending.html</a></td><td> | </td><td class="num">2</td><td><span class="i">+</span><span class="d">-</span></td></tr> -<tr><td class="M">M</td><td><a href="#h2">server.py</a></td><td> | </td><td class="num">65</td><td><span class="i">++++++++++++++++++++++++++++++++++</span><span class="d">-------------------------------</span></td></tr> -</table></pre><pre>3 files changed, 36 insertions(+), 33 deletions(-) -<hr/><b>diff --git a/<a id="h0" href="../file/public_html/templates/index.html.html">public_html/templates/index.html</a> b/<a href="../file/public_html/templates/index.html.html">public_html/templates/index.html</a></b> -<a href="#h0-0" id="h0-0" class="h">@@ -59,6 +59,6 @@ $if bag != []: -</a> $if tot &gt; 0: - &lt;br&gt; - total: $(tot)&amp;euro; or in real money $int(b.convert_to_btc(tot, &#39;EUR&#39;) * 100000000) Satoshi -<a href="#h0-0-3" id="h0-0-3" class="d">- &lt;a href=&quot;/checkout/&quot;&gt;Checkout&lt;/a&gt; -</a><a href="#h0-0-4" id="h0-0-4" class="i">+ &lt;a href=&quot;/checkout&quot;&gt;Checkout&lt;/a&gt; -</a> &lt;/div&gt; - &lt;/div&gt; -<b>diff --git a/<a id="h1" href="../file/public_html/templates/pending.html.html">public_html/templates/pending.html</a> b/<a href="../file/public_html/templates/pending.html.html">public_html/templates/pending.html</a></b> -<a href="#h1-0" id="h1-0" class="h">@@ -38,7 +38,7 @@ $if tot &gt; 0: -</a> total: $(tot)&amp;euro; or in real money $int(b.convert_to_btc(tot, &#39;EUR&#39;) * 100000000) Satoshi - &lt;/h3&gt; - &lt;br&gt; -<a href="#h1-0-3" id="h1-0-3" class="d">-&lt;a href=&quot;/checkout/$pending_key&quot;&gt;Go back!&lt;/a&gt; -</a><a href="#h1-0-4" id="h1-0-4" class="i">+&lt;a href=&quot;/checkout&quot;&gt;Go back!&lt;/a&gt; -</a> &lt;div id=&quot;addevent&quot;&gt; - &lt;form method=&quot;POST&quot;&gt; - $:pendingform.render() -<b>diff --git a/<a id="h2" href="../file/server.py.html">server.py</a> b/<a href="../file/server.py.html">server.py</a></b> -<a href="#h2-0" id="h2-0" class="h">@@ -26,8 +26,8 @@ urls = ( -</a> &#39;/payln/(.*)&#39;, &#39;payln&#39;, - &#39;/paybtc/(.*)&#39;, &#39;paybtc&#39;, - &#39;/payment/(.*)&#39;, &#39;payment&#39;, -<a href="#h2-0-3" id="h2-0-3" class="d">- &#39;/checkout/(.*)&#39;, &#39;checkout&#39;, -</a><a href="#h2-0-4" id="h2-0-4" class="d">- &#39;/pending/(.*)&#39;, &#39;pending&#39;, -</a><a href="#h2-0-5" id="h2-0-5" class="i">+ &#39;/checkout&#39;, &#39;checkout&#39;, -</a><a href="#h2-0-6" id="h2-0-6" class="i">+ &#39;/pending&#39;, &#39;pending&#39;, -</a> &#39;/thankyou&#39;, &#39;thankyou&#39;, - &#39;/login&#39;, &#39;login&#39;, - &#39;/logout&#39;, &#39;logout&#39;, -<a href="#h2-1" id="h2-1" class="h">@@ -216,6 +216,13 @@ def organizepics(product): -</a> os.system(mv + mv2) - organized_nr += 1 - -<a href="#h2-1-3" id="h2-1-3" class="i">+def getpendinginfo(): -</a><a href="#h2-1-4" id="h2-1-4" class="i">+ try: -</a><a href="#h2-1-5" id="h2-1-5" class="i">+ pendinginfo = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + session.sessionkey + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;)[0] -</a><a href="#h2-1-6" id="h2-1-6" class="i">+ except: -</a><a href="#h2-1-7" id="h2-1-7" class="i">+ pendinginfo = &#39;&#39; -</a><a href="#h2-1-8" id="h2-1-8" class="i">+ return pendinginfo -</a><a href="#h2-1-9" id="h2-1-9" class="i">+ -</a> class index(): - def GET(self): - checkforoldbags() -<a href="#h2-2" id="h2-2" class="h">@@ -290,52 +297,48 @@ class checkout: -</a> web.form.Textbox(&#39;postalcode&#39;, web.form.regexp(&#39;\d+&#39;, &#39;number thanx!&#39;), web.form.notnull, description=&quot;Postalcode / zip&quot;), - web.form.Textbox(&#39;email&#39;, web.form.notnull, description=&quot;Email:&quot;), - web.form.Button(&#39;Calculate shipping cost&#39;)) -<a href="#h2-2-3" id="h2-2-3" class="d">- def GET(self, pending_key): -</a><a href="#h2-2-4" id="h2-2-4" class="i">+ -</a><a href="#h2-2-5" id="h2-2-5" class="i">+ def GET(self): -</a> #checkavailable() - checkoutform = self.form() -<a href="#h2-2-8" id="h2-2-8" class="d">- if pending_key: -</a><a href="#h2-2-9" id="h2-2-9" class="d">- oldinfo = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + pending_key + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;) -</a><a href="#h2-2-10" id="h2-2-10" class="d">- oldinfo = oldinfo[0] -</a><a href="#h2-2-11" id="h2-2-11" class="d">- checkoutform.fill(country=oldinfo.country, firstname=oldinfo.firstname, lastname=oldinfo.lastname, address=oldinfo.address, town=oldinfo.town, postalcode=oldinfo.postalcode, email=oldinfo.email) -</a><a href="#h2-2-12" id="h2-2-12" class="i">+ pendinginfo = getpendinginfo() -</a><a href="#h2-2-13" id="h2-2-13" class="i">+ if pendinginfo: -</a><a href="#h2-2-14" id="h2-2-14" class="i">+ checkoutform.fill(country=pendinginfo.country, firstname=pendinginfo.firstname, lastname=pendinginfo.lastname, address=pendinginfo.address, town=pendinginfo.town, postalcode=pendinginfo.postalcode, email=pendinginfo.email) -</a> b = BtcConverter() - bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) - return render.checkout(checkoutform, bag, b, productname, float) -<a href="#h2-2-18" id="h2-2-18" class="d">- def POST(self, pending_key): -</a><a href="#h2-2-19" id="h2-2-19" class="i">+ def POST(self): -</a> checkoutform = self.form() -<a href="#h2-2-21" id="h2-2-21" class="i">+ pendinginfo = getpendinginfo() -</a> i = web.input() - if i.country != &#39;NO-SHIPPING&#39;: - if not checkoutform.validates(): - b = BtcConverter() - return render.checkout(checkoutform, session.bag, b) -<a href="#h2-2-27" id="h2-2-27" class="d">- if pending_key: -</a><a href="#h2-2-28" id="h2-2-28" class="d">- db.update(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + pending_key +&quot;&#39;&quot;, country=i.country, firstname=i.firstname, lastname=i.lastname, address=i.address, town=i.town, postalcode=i.postalcode, email=i.email, dateadded=datetime.datetime.now()) -</a><a href="#h2-2-29" id="h2-2-29" class="i">+ if pendinginfo: -</a><a href="#h2-2-30" id="h2-2-30" class="i">+ db.update(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + session.sessionkey +&quot;&#39;&quot;, country=i.country, firstname=i.firstname, lastname=i.lastname, address=i.address, town=i.town, postalcode=i.postalcode, email=i.email, dateadded=datetime.datetime.now()) -</a> else: -<a href="#h2-2-32" id="h2-2-32" class="d">- pending_key = session.sessionkey -</a><a href="#h2-2-33" id="h2-2-33" class="d">- db.insert(&#39;pending&#39;, invoice_key=pending_key, country=i.country, firstname=i.firstname, lastname=i.lastname, address=i.address, town=i.town, postalcode=i.postalcode, email=i.email, dateadded=datetime.datetime.now()) -</a><a href="#h2-2-34" id="h2-2-34" class="d">- raise web.seeother(&#39;/pending/&#39; + pending_key) -</a><a href="#h2-2-35" id="h2-2-35" class="i">+ db.insert(&#39;pending&#39;, invoice_key=session.sessionkey, country=i.country, firstname=i.firstname, lastname=i.lastname, address=i.address, town=i.town, postalcode=i.postalcode, email=i.email, dateadded=datetime.datetime.now()) -</a><a href="#h2-2-36" id="h2-2-36" class="i">+ raise web.seeother(&#39;/pending&#39;) -</a> - class pending: - form = web.form.Form( - web.form.Dropdown(&#39;payment&#39;, [&#39;Bitcoin Lightning&#39;, &#39;Bitcoin&#39;], web.form.notnull, description=&quot;Select payment method&quot;), - web.form.Button(&#39;Pay&#39;)) -<a href="#h2-2-42" id="h2-2-42" class="d">- def GET(self, pending_key): -</a><a href="#h2-2-43" id="h2-2-43" class="i">+ def GET(self): -</a> #checkavailable() - pendingform = self.form() -<a href="#h2-2-46" id="h2-2-46" class="d">- if pending_key: -</a><a href="#h2-2-47" id="h2-2-47" class="d">- pendinginfo = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + pending_key + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;) -</a><a href="#h2-2-48" id="h2-2-48" class="d">- pendinginfo = pendinginfo[0] -</a><a href="#h2-2-49" id="h2-2-49" class="d">- shippinginfo = db.select(&#39;shipping&#39;, where=&quot;country=&#39;&quot; + pendinginfo.country + &quot;&#39;&quot;, what=&#39;price, days&#39;) -</a><a href="#h2-2-50" id="h2-2-50" class="d">- shippinginfo = shippinginfo[0] -</a><a href="#h2-2-51" id="h2-2-51" class="i">+ pendinginfo = getpendinginfo() -</a><a href="#h2-2-52" id="h2-2-52" class="i">+ if pendinginfo: -</a><a href="#h2-2-53" id="h2-2-53" class="i">+ shippinginfo = db.select(&#39;shipping&#39;, where=&quot;country=&#39;&quot; + pendinginfo.country + &quot;&#39;&quot;, what=&#39;price, days&#39;)[0] -</a> b = BtcConverter() - bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -<a href="#h2-2-56" id="h2-2-56" class="d">- return render.pending(pending_key, pendingform, pendinginfo, shippinginfo, bag, b, productname, float) -</a><a href="#h2-2-57" id="h2-2-57" class="d">- def POST(self, pending_key): -</a><a href="#h2-2-58" id="h2-2-58" class="i">+ return render.pending(session.sessionkey, pendingform, pendinginfo, shippinginfo, bag, b, productname, float) -</a><a href="#h2-2-59" id="h2-2-59" class="i">+ def POST(self): -</a> pendingform = self.form() -<a href="#h2-2-61" id="h2-2-61" class="d">- if pending_key: -</a><a href="#h2-2-62" id="h2-2-62" class="d">- pendinginfo = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + pending_key + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;) -</a><a href="#h2-2-63" id="h2-2-63" class="d">- pendinginfo = pendinginfo[0] -</a><a href="#h2-2-64" id="h2-2-64" class="d">- shippinginfo = db.select(&#39;shipping&#39;, where=&quot;country=&#39;&quot; + pendinginfo.country + &quot;&#39;&quot;, what=&#39;price, days&#39;) -</a><a href="#h2-2-65" id="h2-2-65" class="d">- shippinginfo = shippinginfo[0] -</a><a href="#h2-2-66" id="h2-2-66" class="i">+ pendinginfo = getpendinginfo() -</a><a href="#h2-2-67" id="h2-2-67" class="i">+ if pendinginfo: -</a><a href="#h2-2-68" id="h2-2-68" class="i">+ shippinginfo = db.select(&#39;shipping&#39;, where=&quot;country=&#39;&quot; + pendinginfo.country + &quot;&#39;&quot;, what=&#39;price, days&#39;)[0] -</a> i = web.input() - #if session.bag != []: - totalamount = 0 -<a href="#h2-3" id="h2-3" class="h">@@ -355,7 +358,7 @@ class pending: -</a> #else: - # web.seeother(&#39;/&#39;) - #make lightning invoice -<a href="#h2-3-3" id="h2-3-3" class="d">- invoice = createinvoice(totsats, description, pending_key) -</a><a href="#h2-3-4" id="h2-3-4" class="i">+ invoice = createinvoice(totsats, description, session.sessionkey) -</a> callsubprocess(&#39;qrencode -s 5 -o &#39;+ staticdir + &#39;qr/&#39; + invoice[&#39;id&#39;]+&#39;.png &#39; + invoice[&#39;payreq&#39;]) - #make bitcoin address - bitcoinrpc = AuthServiceProxy(rpcauth) -<a href="#h2-4" id="h2-4" class="h">@@ -367,7 +370,7 @@ class pending: -</a> db.query(&quot;DELETE FROM invoices WHERE invoice_key=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) - except: - print(&#39;no old invoices to delete&#39;) -<a href="#h2-4-3" id="h2-4-3" class="d">- db.insert(&#39;invoices&#39;, invoice_key=pending_key, btc=newaddress, ln=invoice[&#39;id&#39;], products=description, payment=i.payment, amount=totalamount, totsats=totsats, timestamp=time.strftime(&#39;%Y-%m-%d %H:%M:%S&#39;)) -</a><a href="#h2-4-4" id="h2-4-4" class="i">+ db.insert(&#39;invoices&#39;, invoice_key=session.sessionkey, btc=newaddress, ln=invoice[&#39;id&#39;], products=description, payment=i.payment, amount=totalamount, totsats=totsats, timestamp=time.strftime(&#39;%Y-%m-%d %H:%M:%S&#39;)) -</a> # send mail to op - msg = &#39;You got a new order, from &#39; + pendinginfo.firstname + &#39; &#39; + pendinginfo.lastname + &#39; from &#39; + pendinginfo.country + &#39; email: &#39; + pendinginfo.email + &#39; this dude wantz &#39; + description + &#39; for &#39; + str(int(totalamount/100)) + &#39;€ &#39; + &#39; with &#39; + i.payment - sendmail(webmaster, &#39;GetDaFuckOuttaHere Shop&#39;, msg) -<a href="#h2-5" id="h2-5" class="h">@@ -377,12 +380,12 @@ class pending: -</a> if i.payment == &#39;Bitcoin Lightning&#39;: - paymentlink = &#39;payln/&#39; - if pendinginfo.email != &#39;&#39;: -<a href="#h2-5-3" id="h2-5-3" class="d">- msg = &quot;Thank you for ordering &quot; + description + &quot; at GetDaFuckOuttaHere Shop, we&#39;ll be processing your order as soon as possible and send it to &quot; + pendinginfo.firstname + &#39; &#39; + pendinginfo.lastname + &#39;, &#39; + pendinginfo.address + &#39;, &#39; + str(pendinginfo.postalcode) + &#39;, &#39; + pendinginfo.town + &#39;, &#39; + pendinginfo.country + &#39;. To pay/view status of your order please visit &#39; + baseurl + paymentlink + pending_key -</a><a href="#h2-5-4" id="h2-5-4" class="i">+ msg = &quot;Thank you for ordering &quot; + description + &quot; at GetDaFuckOuttaHere Shop, we&#39;ll be processing your order as soon as possible and send it to &quot; + pendinginfo.firstname + &#39; &#39; + pendinginfo.lastname + &#39;, &#39; + pendinginfo.address + &#39;, &#39; + str(pendinginfo.postalcode) + &#39;, &#39; + pendinginfo.town + &#39;, &#39; + pendinginfo.country + &#39;. To pay/view status of your order please visit &#39; + baseurl + paymentlink + session.sessionkey -</a> sendmail(pendinginfo.email, &#39;GetDaFuckOuttaHere Shop&#39;, msg) - if i.payment == &#39;Bitcoin&#39;: -<a href="#h2-5-7" id="h2-5-7" class="d">- return web.seeother(&#39;/paybtc/&#39; + pending_key) -</a><a href="#h2-5-8" id="h2-5-8" class="i">+ return web.seeother(&#39;/paybtc/&#39; + session.sessionkey) -</a> if i.payment == &#39;Bitcoin Lightning&#39;: -<a href="#h2-5-10" id="h2-5-10" class="d">- return web.seeother(&#39;/payln/&#39; + pending_key) -</a><a href="#h2-5-11" id="h2-5-11" class="i">+ return web.seeother(&#39;/payln/&#39; + session.sessionkey) -</a> else: - return web.seeother(&#39;/&#39;) - -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/commit/6cebe6413cba1ca3d3267f60bb3b80f9ad1fb591.html b/public_html/static/git/commit/6cebe6413cba1ca3d3267f60bb3b80f9ad1fb591.html @@ -1,705 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>first - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../style.css" /> -</head> -<body> -<table><tr><td><a href="../../"><img src="../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../log.html">Log</a> | <a href="../files.html">Files</a> | <a href="../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<pre><b>commit</b> <a href="../commit/6cebe6413cba1ca3d3267f60bb3b80f9ad1fb591.html">6cebe6413cba1ca3d3267f60bb3b80f9ad1fb591</a> -<b>Author:</b> rob &lt;<a href="mailto:rob@tarina.org">rob@tarina.org</a>&gt; -<b>Date:</b> Sat, 16 Oct 2021 07:45:16 +0300 - -first - -<b>Diffstat:</b> -<table><tr><td class="A">A</td><td><a href="#h0">server.py</a></td><td> | </td><td class="num">673</td><td><span class="i">+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -</table></pre><pre>1 file changed, 673 insertions(+), 0 deletions(-) -<hr/><b>diff --git a/<a id="h0" href="../file/server.py.html">server.py</a> b/<a href="../file/server.py.html">server.py</a></b> -<a href="#h0-0" id="h0-0" class="h">@@ -0,0 +1,673 @@ -</a><a href="#h0-0-0" id="h0-0-0" class="i">+#!/usr/bin/python3 -</a><a href="#h0-0-1" id="h0-0-1" class="i">+# -*- coding: utf-8 -*- -</a><a href="#h0-0-2" id="h0-0-2" class="i">+ -</a><a href="#h0-0-3" id="h0-0-3" class="i">+import time, datetime, os, sys -</a><a href="#h0-0-4" id="h0-0-4" class="i">+ -</a><a href="#h0-0-5" id="h0-0-5" class="i">+file_dir = os.path.dirname(__file__) -</a><a href="#h0-0-6" id="h0-0-6" class="i">+sys.path.append(file_dir) -</a><a href="#h0-0-7" id="h0-0-7" class="i">+ -</a><a href="#h0-0-8" id="h0-0-8" class="i">+import json -</a><a href="#h0-0-9" id="h0-0-9" class="i">+import requests -</a><a href="#h0-0-10" id="h0-0-10" class="i">+import subprocess -</a><a href="#h0-0-11" id="h0-0-11" class="i">+import web -</a><a href="#h0-0-12" id="h0-0-12" class="i">+import hashlib -</a><a href="#h0-0-13" id="h0-0-13" class="i">+import random -</a><a href="#h0-0-14" id="h0-0-14" class="i">+import time -</a><a href="#h0-0-15" id="h0-0-15" class="i">+import shutil -</a><a href="#h0-0-16" id="h0-0-16" class="i">+import settings -</a><a href="#h0-0-17" id="h0-0-17" class="i">+from PIL import Image -</a><a href="#h0-0-18" id="h0-0-18" class="i">+from forex_python.bitcoin import BtcConverter -</a><a href="#h0-0-19" id="h0-0-19" class="i">+from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException -</a><a href="#h0-0-20" id="h0-0-20" class="i">+ -</a><a href="#h0-0-21" id="h0-0-21" class="i">+urls = ( -</a><a href="#h0-0-22" id="h0-0-22" class="i">+ &#39;/?&#39;, &#39;index&#39;, -</a><a href="#h0-0-23" id="h0-0-23" class="i">+ &#39;/putinbag/(.*)&#39;, &#39;putinbag&#39;, -</a><a href="#h0-0-24" id="h0-0-24" class="i">+ &#39;/dropitem/(.*)?&#39;, &#39;dropitem&#39;, -</a><a href="#h0-0-25" id="h0-0-25" class="i">+ &#39;/payln/(.*)&#39;, &#39;payln&#39;, -</a><a href="#h0-0-26" id="h0-0-26" class="i">+ &#39;/paybtc/(.*)&#39;, &#39;paybtc&#39;, -</a><a href="#h0-0-27" id="h0-0-27" class="i">+ &#39;/payment/(.*)&#39;, &#39;payment&#39;, -</a><a href="#h0-0-28" id="h0-0-28" class="i">+ &#39;/checkout/(.*)&#39;, &#39;checkout&#39;, -</a><a href="#h0-0-29" id="h0-0-29" class="i">+ &#39;/pending/(.*)&#39;, &#39;pending&#39;, -</a><a href="#h0-0-30" id="h0-0-30" class="i">+ &#39;/thankyou&#39;, &#39;thankyou&#39;, -</a><a href="#h0-0-31" id="h0-0-31" class="i">+ &#39;/login&#39;, &#39;login&#39;, -</a><a href="#h0-0-32" id="h0-0-32" class="i">+ &#39;/logout&#39;, &#39;logout&#39;, -</a><a href="#h0-0-33" id="h0-0-33" class="i">+ &#39;/products/(.*)?&#39;, &#39;products&#39;, -</a><a href="#h0-0-34" id="h0-0-34" class="i">+ &#39;/bigpic/(.*)?&#39;, &#39;bigpic&#39;, -</a><a href="#h0-0-35" id="h0-0-35" class="i">+ &#39;/categories?&#39;, &#39;categories&#39;, -</a><a href="#h0-0-36" id="h0-0-36" class="i">+ &#39;/op&#39;, &#39;op&#39;, -</a><a href="#h0-0-37" id="h0-0-37" class="i">+ &#39;/bitcoin&#39;, &#39;bitcoin&#39;, -</a><a href="#h0-0-38" id="h0-0-38" class="i">+ &#39;/shipping/(.*)&#39;, &#39;shipping&#39;, -</a><a href="#h0-0-39" id="h0-0-39" class="i">+ &#39;/payments?&#39;, &#39;payments&#39;) -</a><a href="#h0-0-40" id="h0-0-40" class="i">+ -</a><a href="#h0-0-41" id="h0-0-41" class="i">+allowed = ((&quot;rbckman&quot;, &quot;secret&quot;), -</a><a href="#h0-0-42" id="h0-0-42" class="i">+ (&quot;brkhelle&quot;, &quot;topsecret&quot;)) -</a><a href="#h0-0-43" id="h0-0-43" class="i">+ -</a><a href="#h0-0-44" id="h0-0-44" class="i">+productsbad = ((&quot;GetDaFuckOuttaHere&quot;, 420.00), -</a><a href="#h0-0-45" id="h0-0-45" class="i">+ (&quot;GetDaFuckOuttaHere Viewfinder&quot;, 80.00), -</a><a href="#h0-0-46" id="h0-0-46" class="i">+ (&quot;Picamera&quot;, 30.00), -</a><a href="#h0-0-47" id="h0-0-47" class="i">+ (&quot;Donation&quot;, 0.005)) -</a><a href="#h0-0-48" id="h0-0-48" class="i">+ -</a><a href="#h0-0-49" id="h0-0-49" class="i">+bag = &#39;&#39; -</a><a href="#h0-0-50" id="h0-0-50" class="i">+ -</a><a href="#h0-0-51" id="h0-0-51" class="i">+#Load from settings -</a><a href="#h0-0-52" id="h0-0-52" class="i">+ -</a><a href="#h0-0-53" id="h0-0-53" class="i">+rpcauth = settings.rpcauth -</a><a href="#h0-0-54" id="h0-0-54" class="i">+charge_url = settings.charge_url -</a><a href="#h0-0-55" id="h0-0-55" class="i">+webmaster = settings.webmaster -</a><a href="#h0-0-56" id="h0-0-56" class="i">+baseurl = settings.baseurl -</a><a href="#h0-0-57" id="h0-0-57" class="i">+ -</a><a href="#h0-0-58" id="h0-0-58" class="i">+ -</a><a href="#h0-0-59" id="h0-0-59" class="i">+basedir = os.path.dirname(os.path.realpath(__file__)) -</a><a href="#h0-0-60" id="h0-0-60" class="i">+templatedir = basedir + &#39;/public_html/templates/&#39; -</a><a href="#h0-0-61" id="h0-0-61" class="i">+staticdir = basedir + &#39;/public_html/static/&#39; -</a><a href="#h0-0-62" id="h0-0-62" class="i">+web.config.debug = False -</a><a href="#h0-0-63" id="h0-0-63" class="i">+app = web.application(urls, globals()) -</a><a href="#h0-0-64" id="h0-0-64" class="i">+store = web.session.DiskStore(basedir + &#39;/sessions&#39;) -</a><a href="#h0-0-65" id="h0-0-65" class="i">+render = web.template.render(templatedir, base=&quot;base&quot;) -</a><a href="#h0-0-66" id="h0-0-66" class="i">+renderop = web.template.render(templatedir, base=&quot;op&quot;) -</a><a href="#h0-0-67" id="h0-0-67" class="i">+db = web.database(dbn=&#39;sqlite&#39;, db=basedir + &quot;/db/cyberpunkcafe.db&quot;) -</a><a href="#h0-0-68" id="h0-0-68" class="i">+session = web.session.Session(app,store,initializer={&#39;login&#39;:0, &#39;privilege&#39;:0, &#39;bag&#39;:[], &#39;sessionkey&#39;:0}) -</a><a href="#h0-0-69" id="h0-0-69" class="i">+ -</a><a href="#h0-0-70" id="h0-0-70" class="i">+#----------- Database setup ------------- -</a><a href="#h0-0-71" id="h0-0-71" class="i">+ -</a><a href="#h0-0-72" id="h0-0-72" class="i">+#Remeber to store Euros in cents -</a><a href="#h0-0-73" id="h0-0-73" class="i">+ -</a><a href="#h0-0-74" id="h0-0-74" class="i">+#CREATE TABLE products (id integer PRIMARY KEY, name text NOT NULL, description text, price integer NOT NULL, available integer, sold integer, priority integer, dateadded integer, datelastsold integer, daterunout integer, dateavailable integer); -</a><a href="#h0-0-75" id="h0-0-75" class="i">+ -</a><a href="#h0-0-76" id="h0-0-76" class="i">+#CREATE TABLE shipping (id integer PRIMARY KEY, country text NOT NULL, cost integer NOT NULL, days integer NOT NULL); -</a><a href="#h0-0-77" id="h0-0-77" class="i">+ -</a><a href="#h0-0-78" id="h0-0-78" class="i">+#should rename to customer -</a><a href="#h0-0-79" id="h0-0-79" class="i">+#CREATE TABLE pending (id integer PRIMARY KEY, invoice_key text NOT NULL, country text NOT NULL, firstname text NOT NULL, lastname text NOT NULL, address text NOT NULL, town text NOT NULL, postalcode integer NOT NULL, email text NOT NULL, dateadded integer) -</a><a href="#h0-0-80" id="h0-0-80" class="i">+ -</a><a href="#h0-0-81" id="h0-0-81" class="i">+#CREATE TABLE invoices (id INT AUTO_INCREMENT, invoice_key TEXT, btc TEXT, ln TEXT, products TEXT, payment TEXT, amount INT, totsats INT, timestamp TIMESTAMP, status TEXT, datepaid TIMESTAMP, dateshipped TIMESTAMP); -</a><a href="#h0-0-82" id="h0-0-82" class="i">+ -</a><a href="#h0-0-83" id="h0-0-83" class="i">+ -</a><a href="#h0-0-84" id="h0-0-84" class="i">+def logged(): -</a><a href="#h0-0-85" id="h0-0-85" class="i">+ if session.login == 1: -</a><a href="#h0-0-86" id="h0-0-86" class="i">+ return True -</a><a href="#h0-0-87" id="h0-0-87" class="i">+ else: -</a><a href="#h0-0-88" id="h0-0-88" class="i">+ return False -</a><a href="#h0-0-89" id="h0-0-89" class="i">+ -</a><a href="#h0-0-90" id="h0-0-90" class="i">+def sendmail(email, subject, msg): -</a><a href="#h0-0-91" id="h0-0-91" class="i">+ #Send mail -</a><a href="#h0-0-92" id="h0-0-92" class="i">+ echomsg = subprocess.Popen((&#39;echo&#39;, msg), stdout=subprocess.PIPE) -</a><a href="#h0-0-93" id="h0-0-93" class="i">+ sendmsg = subprocess.check_output((&#39;mail&#39;, &#39;-r&#39;, &#39;rob@tarina.org&#39;, &#39;-s&#39;, subject, email), stdin=echomsg.stdout) -</a><a href="#h0-0-94" id="h0-0-94" class="i">+ echomsg.wait() -</a><a href="#h0-0-95" id="h0-0-95" class="i">+ #subprocess.call([&#39;echo&#39;, msg, &#39;|&#39;, &#39;mail&#39;, &#39;-r&#39;, &#39;rob@tarina.org&#39;,&#39;-s&#39;, subject, email]) -</a><a href="#h0-0-96" id="h0-0-96" class="i">+ -</a><a href="#h0-0-97" id="h0-0-97" class="i">+def createinvoice(amount, description, invoice_key): -</a><a href="#h0-0-98" id="h0-0-98" class="i">+ #Cents to EUR -</a><a href="#h0-0-99" id="h0-0-99" class="i">+ amount = str(amount*1000) -</a><a href="#h0-0-100" id="h0-0-100" class="i">+ invoice_details = {&quot;msatoshi&quot;:amount, &quot;description&quot;: &quot;{}&quot;.format(description)} -</a><a href="#h0-0-101" id="h0-0-101" class="i">+ print(invoice_details) -</a><a href="#h0-0-102" id="h0-0-102" class="i">+ resp = requests.post(charge_url+&#39;/invoice/&#39;, json=invoice_details) -</a><a href="#h0-0-103" id="h0-0-103" class="i">+ #print(resp.json()) -</a><a href="#h0-0-104" id="h0-0-104" class="i">+ return resp.json() -</a><a href="#h0-0-105" id="h0-0-105" class="i">+ -</a><a href="#h0-0-106" id="h0-0-106" class="i">+def getinvoice(id): -</a><a href="#h0-0-107" id="h0-0-107" class="i">+ resp = requests.get(charge_url+&#39;/invoice/&#39;+id) -</a><a href="#h0-0-108" id="h0-0-108" class="i">+ print(resp.json()) -</a><a href="#h0-0-109" id="h0-0-109" class="i">+ return resp.json() -</a><a href="#h0-0-110" id="h0-0-110" class="i">+ -</a><a href="#h0-0-111" id="h0-0-111" class="i">+def callsubprocess(cmd): -</a><a href="#h0-0-112" id="h0-0-112" class="i">+ subprocess.call(cmd.split()) -</a><a href="#h0-0-113" id="h0-0-113" class="i">+ -</a><a href="#h0-0-114" id="h0-0-114" class="i">+def dropitems(d): -</a><a href="#h0-0-115" id="h0-0-115" class="i">+ i = getproduct(d) -</a><a href="#h0-0-116" id="h0-0-116" class="i">+ db.update(&#39;products&#39;, where=&quot;id=&#39;&quot;+str(i.id)+&quot;&#39;&quot;, available=i.available+1) -</a><a href="#h0-0-117" id="h0-0-117" class="i">+ product = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39; AND product=&#39;&quot;+str(i.id)+&quot;&#39;;&quot;)[0] -</a><a href="#h0-0-118" id="h0-0-118" class="i">+ if product.quantity &gt; 1: -</a><a href="#h0-0-119" id="h0-0-119" class="i">+ db.update(&#39;customerbag&#39;, where=&quot;sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39; and product=&#39;&quot;+str(i.id)+&quot;&#39;&quot;, quantity=product.quantity-1) -</a><a href="#h0-0-120" id="h0-0-120" class="i">+ else: -</a><a href="#h0-0-121" id="h0-0-121" class="i">+ db.query(&quot;DELETE FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39; AND product=&#39;&quot;+str(i.id)+&quot;&#39;;&quot;) -</a><a href="#h0-0-122" id="h0-0-122" class="i">+ -</a><a href="#h0-0-123" id="h0-0-123" class="i">+def addtobag(p): -</a><a href="#h0-0-124" id="h0-0-124" class="i">+ i = getproduct(p) -</a><a href="#h0-0-125" id="h0-0-125" class="i">+ if i.available &gt; 0: -</a><a href="#h0-0-126" id="h0-0-126" class="i">+ #session.bag += (i.name, i.price, i.id), -</a><a href="#h0-0-127" id="h0-0-127" class="i">+ db.update(&#39;products&#39;, where=&quot;id=&#39;&quot;+str(i.id)+&quot;&#39;&quot;, available=i.available-1) -</a><a href="#h0-0-128" id="h0-0-128" class="i">+ product = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39; AND product=&#39;&quot;+str(i.id)+&quot;&#39;;&quot;) -</a><a href="#h0-0-129" id="h0-0-129" class="i">+ if product: -</a><a href="#h0-0-130" id="h0-0-130" class="i">+ product = product[0] -</a><a href="#h0-0-131" id="h0-0-131" class="i">+ print(product) -</a><a href="#h0-0-132" id="h0-0-132" class="i">+ db.update(&#39;customerbag&#39;, where=&quot;sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39; and product=&#39;&quot;+str(i.id)+&quot;&#39;&quot;, quantity=product.quantity+1) -</a><a href="#h0-0-133" id="h0-0-133" class="i">+ print(&#39;gwtdafaakouttahere&#39;) -</a><a href="#h0-0-134" id="h0-0-134" class="i">+ else: -</a><a href="#h0-0-135" id="h0-0-135" class="i">+ db.insert(&#39;customerbag&#39;, sessionkey=session.sessionkey, product=i.id, price=i.price, quantity=1, timeadded=datetime.datetime.now()) -</a><a href="#h0-0-136" id="h0-0-136" class="i">+ -</a><a href="#h0-0-137" id="h0-0-137" class="i">+def productname(productid): -</a><a href="#h0-0-138" id="h0-0-138" class="i">+ try: -</a><a href="#h0-0-139" id="h0-0-139" class="i">+ name = db.query(&quot;SELECT name FROM products WHERE id=&#39;&quot;+str(productid)+&quot;&#39;;&quot;)[0] -</a><a href="#h0-0-140" id="h0-0-140" class="i">+ except: -</a><a href="#h0-0-141" id="h0-0-141" class="i">+ return &#39;&#39; -</a><a href="#h0-0-142" id="h0-0-142" class="i">+ return name.name -</a><a href="#h0-0-143" id="h0-0-143" class="i">+ -</a><a href="#h0-0-144" id="h0-0-144" class="i">+def getproduct(productid): -</a><a href="#h0-0-145" id="h0-0-145" class="i">+ try: -</a><a href="#h0-0-146" id="h0-0-146" class="i">+ product = db.query(&quot;SELECT * FROM products WHERE id=&#39;&quot;+str(productid)+&quot;&#39;;&quot;)[0] -</a><a href="#h0-0-147" id="h0-0-147" class="i">+ except: -</a><a href="#h0-0-148" id="h0-0-148" class="i">+ return &#39;&#39; -</a><a href="#h0-0-149" id="h0-0-149" class="i">+ return product -</a><a href="#h0-0-150" id="h0-0-150" class="i">+ -</a><a href="#h0-0-151" id="h0-0-151" class="i">+def getavailable(productid): -</a><a href="#h0-0-152" id="h0-0-152" class="i">+ try: -</a><a href="#h0-0-153" id="h0-0-153" class="i">+ name = db.query(&quot;SELECT available FROM products WHERE id=&#39;&quot;+str(productid)+&quot;&#39;;&quot;)[0] -</a><a href="#h0-0-154" id="h0-0-154" class="i">+ except: -</a><a href="#h0-0-155" id="h0-0-155" class="i">+ return &#39;&#39; -</a><a href="#h0-0-156" id="h0-0-156" class="i">+ return name.available -</a><a href="#h0-0-157" id="h0-0-157" class="i">+ -</a><a href="#h0-0-158" id="h0-0-158" class="i">+def checkforoldbags(): -</a><a href="#h0-0-159" id="h0-0-159" class="i">+ print(&#39;checking for old bags&#39;) -</a><a href="#h0-0-160" id="h0-0-160" class="i">+ bags = db.select(&#39;customerbag&#39;) -</a><a href="#h0-0-161" id="h0-0-161" class="i">+ for bag in bags: -</a><a href="#h0-0-162" id="h0-0-162" class="i">+ if datetime.datetime.now() - bag.timeadded &gt; datetime.timedelta(hours=1): -</a><a href="#h0-0-163" id="h0-0-163" class="i">+ print(datetime.datetime.now() - bag.timeadded) -</a><a href="#h0-0-164" id="h0-0-164" class="i">+ print(datetime.timedelta(hours=1)) -</a><a href="#h0-0-165" id="h0-0-165" class="i">+ print(&quot;Fuck&quot;) -</a><a href="#h0-0-166" id="h0-0-166" class="i">+ product = getproduct(bag.product) -</a><a href="#h0-0-167" id="h0-0-167" class="i">+ print(&#39;found a bag at door! goddamit, got to put &#39; + str(bag.quantity) + &#39; x &#39; + product.name + &#39; back on the shelf&#39;) -</a><a href="#h0-0-168" id="h0-0-168" class="i">+ if product.available &gt; 1: -</a><a href="#h0-0-169" id="h0-0-169" class="i">+ q = product.available + bag.quantity -</a><a href="#h0-0-170" id="h0-0-170" class="i">+ else: -</a><a href="#h0-0-171" id="h0-0-171" class="i">+ q = bag.quantity -</a><a href="#h0-0-172" id="h0-0-172" class="i">+ db.update(&#39;products&#39;, where=&quot;id=&#39;&quot;+str(bag.product)+&quot;&#39;&quot;, available=str(q)) -</a><a href="#h0-0-173" id="h0-0-173" class="i">+ db.query(&quot;DELETE FROM customerbag WHERE sessionkey=&#39;&quot; + bag.sessionkey + &quot;&#39;&quot;) -</a><a href="#h0-0-174" id="h0-0-174" class="i">+ -</a><a href="#h0-0-175" id="h0-0-175" class="i">+def checkavailable(): -</a><a href="#h0-0-176" id="h0-0-176" class="i">+ print(&#39;check items from availability&#39;) -</a><a href="#h0-0-177" id="h0-0-177" class="i">+ bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey + &quot;&#39;&quot;) -</a><a href="#h0-0-178" id="h0-0-178" class="i">+ for i in bag: -</a><a href="#h0-0-179" id="h0-0-179" class="i">+ q = getavailable(i.product) -</a><a href="#h0-0-180" id="h0-0-180" class="i">+ soldout = q - i.quantity -</a><a href="#h0-0-181" id="h0-0-181" class="i">+ if soldout &lt; 0: -</a><a href="#h0-0-182" id="h0-0-182" class="i">+ web.seeother(&#39;/?error=soldout&#39;) -</a><a href="#h0-0-183" id="h0-0-183" class="i">+ else: -</a><a href="#h0-0-184" id="h0-0-184" class="i">+ return -</a><a href="#h0-0-185" id="h0-0-185" class="i">+ -</a><a href="#h0-0-186" id="h0-0-186" class="i">+def sold(): -</a><a href="#h0-0-187" id="h0-0-187" class="i">+ print(&#39;remove items from availability&#39;) -</a><a href="#h0-0-188" id="h0-0-188" class="i">+ bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey + &quot;&#39;&quot;) -</a><a href="#h0-0-189" id="h0-0-189" class="i">+ for i in bag: -</a><a href="#h0-0-190" id="h0-0-190" class="i">+ q = getavailable(i.product) -</a><a href="#h0-0-191" id="h0-0-191" class="i">+ soldout = q - i.quantity -</a><a href="#h0-0-192" id="h0-0-192" class="i">+ if soldout &lt; 0: -</a><a href="#h0-0-193" id="h0-0-193" class="i">+ web.seeother(&#39;/?error=soldout&#39;) -</a><a href="#h0-0-194" id="h0-0-194" class="i">+ else: -</a><a href="#h0-0-195" id="h0-0-195" class="i">+ db.update(&#39;products&#39;, where=&quot;id=&#39;&quot;+str(i.product)+&quot;&#39;&quot;, available=str(q - i.quantity)) -</a><a href="#h0-0-196" id="h0-0-196" class="i">+ -</a><a href="#h0-0-197" id="h0-0-197" class="i">+ -</a><a href="#h0-0-198" id="h0-0-198" class="i">+def organizepics(product): -</a><a href="#h0-0-199" id="h0-0-199" class="i">+ imgdir = basedir+&#39;/public_html/static/img/&#39; + str(product) + &#39;/&#39; -</a><a href="#h0-0-200" id="h0-0-200" class="i">+ imgdirlist = [imgdir, imgdir + &#39;web/&#39;, imgdir + &#39;thumb/&#39;] -</a><a href="#h0-0-201" id="h0-0-201" class="i">+ for d in imgdirlist: -</a><a href="#h0-0-202" id="h0-0-202" class="i">+ pics = next(os.walk(d))[2] -</a><a href="#h0-0-203" id="h0-0-203" class="i">+ organized_nr = 0 -</a><a href="#h0-0-204" id="h0-0-204" class="i">+ for s in sorted(pics): -</a><a href="#h0-0-205" id="h0-0-205" class="i">+ if &#39;.jpeg&#39; in s: -</a><a href="#h0-0-206" id="h0-0-206" class="i">+ #print(s) -</a><a href="#h0-0-207" id="h0-0-207" class="i">+ unorganized_nr = int(s[0:3]) -</a><a href="#h0-0-208" id="h0-0-208" class="i">+ if organized_nr == unorganized_nr: -</a><a href="#h0-0-209" id="h0-0-209" class="i">+ print(&#39;correcto pic numbering&#39;) -</a><a href="#h0-0-210" id="h0-0-210" class="i">+ pass -</a><a href="#h0-0-211" id="h0-0-211" class="i">+ if organized_nr != unorganized_nr: -</a><a href="#h0-0-212" id="h0-0-212" class="i">+ print(&#39;false, correcting pic from &#39; + str(unorganized_nr) + &#39; to &#39; + str(organized_nr)) -</a><a href="#h0-0-213" id="h0-0-213" class="i">+ mv = &#39;mv &#39; + d + str(unorganized_nr).zfill(3) + &#39;.jpeg&#39; -</a><a href="#h0-0-214" id="h0-0-214" class="i">+ mv2 = &#39; &#39; + d + str(organized_nr).zfill(3) + &#39;.jpeg&#39; -</a><a href="#h0-0-215" id="h0-0-215" class="i">+ os.system(mv + mv2) -</a><a href="#h0-0-216" id="h0-0-216" class="i">+ organized_nr += 1 -</a><a href="#h0-0-217" id="h0-0-217" class="i">+ -</a><a href="#h0-0-218" id="h0-0-218" class="i">+class index(): -</a><a href="#h0-0-219" id="h0-0-219" class="i">+ def GET(self): -</a><a href="#h0-0-220" id="h0-0-220" class="i">+ checkforoldbags() -</a><a href="#h0-0-221" id="h0-0-221" class="i">+ i = web.input(dropitem=None, putinbag=None) -</a><a href="#h0-0-222" id="h0-0-222" class="i">+ if session.sessionkey == 0: -</a><a href="#h0-0-223" id="h0-0-223" class="i">+ session.sessionkey = hashlib.sha256(str(random.getrandbits(256)).encode(&#39;utf-8&#39;)).hexdigest() -</a><a href="#h0-0-224" id="h0-0-224" class="i">+ if i.dropitem != None: -</a><a href="#h0-0-225" id="h0-0-225" class="i">+ session.bag = dropitems(int(i.dropitem)) -</a><a href="#h0-0-226" id="h0-0-226" class="i">+ print(session.bag) -</a><a href="#h0-0-227" id="h0-0-227" class="i">+ if i.putinbag != None: -</a><a href="#h0-0-228" id="h0-0-228" class="i">+ addtobag(i.putinbag) -</a><a href="#h0-0-229" id="h0-0-229" class="i">+ return web.seeother(&#39;/#&#39; + i.putinbag) -</a><a href="#h0-0-230" id="h0-0-230" class="i">+ print(&#39;Cyberpunk cafe&#39;) -</a><a href="#h0-0-231" id="h0-0-231" class="i">+ #print(session.bag) -</a><a href="#h0-0-232" id="h0-0-232" class="i">+ b = BtcConverter() -</a><a href="#h0-0-233" id="h0-0-233" class="i">+ listproducts = db.query(&quot;SELECT * FROM products ORDER BY priority DESC&quot;) -</a><a href="#h0-0-234" id="h0-0-234" class="i">+ imgfiles = [] -</a><a href="#h0-0-235" id="h0-0-235" class="i">+ products = [] -</a><a href="#h0-0-236" id="h0-0-236" class="i">+ # Search product images -</a><a href="#h0-0-237" id="h0-0-237" class="i">+ for i in listproducts: -</a><a href="#h0-0-238" id="h0-0-238" class="i">+ productimages = [&#39;&#39;] -</a><a href="#h0-0-239" id="h0-0-239" class="i">+ imgdir = staticdir + &#39;img/&#39; + str(i.id) + &#39;/web/&#39; -</a><a href="#h0-0-240" id="h0-0-240" class="i">+ try: -</a><a href="#h0-0-241" id="h0-0-241" class="i">+ productimages = sorted(os.listdir(imgdir)) -</a><a href="#h0-0-242" id="h0-0-242" class="i">+ if len(productimages) == 0: -</a><a href="#h0-0-243" id="h0-0-243" class="i">+ productimages = [&#39;&#39;] -</a><a href="#h0-0-244" id="h0-0-244" class="i">+ print(productimages) -</a><a href="#h0-0-245" id="h0-0-245" class="i">+ except FileNotFoundError: -</a><a href="#h0-0-246" id="h0-0-246" class="i">+ print(&#39;No product images&#39;) -</a><a href="#h0-0-247" id="h0-0-247" class="i">+ pass -</a><a href="#h0-0-248" id="h0-0-248" class="i">+ i.update({&#39;images&#39;:productimages}) -</a><a href="#h0-0-249" id="h0-0-249" class="i">+ products.append(i) -</a><a href="#h0-0-250" id="h0-0-250" class="i">+ try: -</a><a href="#h0-0-251" id="h0-0-251" class="i">+ bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -</a><a href="#h0-0-252" id="h0-0-252" class="i">+ except: -</a><a href="#h0-0-253" id="h0-0-253" class="i">+ bag = [] -</a><a href="#h0-0-254" id="h0-0-254" class="i">+ return render.index(products, b, bag, str, int, float, session.sessionkey, productname) -</a><a href="#h0-0-255" id="h0-0-255" class="i">+ -</a><a href="#h0-0-256" id="h0-0-256" class="i">+class putinbag: -</a><a href="#h0-0-257" id="h0-0-257" class="i">+ def GET(self, p): -</a><a href="#h0-0-258" id="h0-0-258" class="i">+ addtobag(p) -</a><a href="#h0-0-259" id="h0-0-259" class="i">+ raise web.seeother(&#39;/&#39;) -</a><a href="#h0-0-260" id="h0-0-260" class="i">+ -</a><a href="#h0-0-261" id="h0-0-261" class="i">+class dropitem(): -</a><a href="#h0-0-262" id="h0-0-262" class="i">+ def GET(self, d): -</a><a href="#h0-0-263" id="h0-0-263" class="i">+ p = web.input() -</a><a href="#h0-0-264" id="h0-0-264" class="i">+ i = 0 -</a><a href="#h0-0-265" id="h0-0-265" class="i">+ dropitems(int(d)) -</a><a href="#h0-0-266" id="h0-0-266" class="i">+ return web.seeother(&#39;/#&#39;+d) -</a><a href="#h0-0-267" id="h0-0-267" class="i">+ -</a><a href="#h0-0-268" id="h0-0-268" class="i">+class bigpic(): -</a><a href="#h0-0-269" id="h0-0-269" class="i">+ def GET(self, i): -</a><a href="#h0-0-270" id="h0-0-270" class="i">+ print(&#39;faaaakyeee &#39; + i) -</a><a href="#h0-0-271" id="h0-0-271" class="i">+ p = web.input(pic=None) -</a><a href="#h0-0-272" id="h0-0-272" class="i">+ if p.pic != None: -</a><a href="#h0-0-273" id="h0-0-273" class="i">+ return render.bigpic(p.pic, i) -</a><a href="#h0-0-274" id="h0-0-274" class="i">+ -</a><a href="#h0-0-275" id="h0-0-275" class="i">+class checkout: -</a><a href="#h0-0-276" id="h0-0-276" class="i">+ t = [] -</a><a href="#h0-0-277" id="h0-0-277" class="i">+ shippingcountries = db.select(&#39;shipping&#39;, what=&#39;country&#39;, order=&#39;country ASC&#39;) -</a><a href="#h0-0-278" id="h0-0-278" class="i">+ shippingcountries = list(shippingcountries) -</a><a href="#h0-0-279" id="h0-0-279" class="i">+ t.append(&#39;NO-SHIPPING&#39;) -</a><a href="#h0-0-280" id="h0-0-280" class="i">+ for i in shippingcountries: -</a><a href="#h0-0-281" id="h0-0-281" class="i">+ if i.country != &#39;NO-SHIPPING&#39;: -</a><a href="#h0-0-282" id="h0-0-282" class="i">+ t.append(i.country) -</a><a href="#h0-0-283" id="h0-0-283" class="i">+ form = web.form.Form( -</a><a href="#h0-0-284" id="h0-0-284" class="i">+ web.form.Dropdown(&#39;country&#39;, t, web.form.notnull, description=&quot;Country&quot;), -</a><a href="#h0-0-285" id="h0-0-285" class="i">+ web.form.Textbox(&#39;firstname&#39;, web.form.notnull, description=&quot;First Name:&quot;), -</a><a href="#h0-0-286" id="h0-0-286" class="i">+ web.form.Textbox(&#39;lastname&#39;, web.form.notnull, description=&quot;Last Name:&quot;), -</a><a href="#h0-0-287" id="h0-0-287" class="i">+ web.form.Textbox(&#39;address&#39;, web.form.notnull, description=&quot;Shipping Address:&quot;), -</a><a href="#h0-0-288" id="h0-0-288" class="i">+ web.form.Textbox(&#39;town&#39;, web.form.notnull, description=&quot;Town / City:&quot;), -</a><a href="#h0-0-289" id="h0-0-289" class="i">+ web.form.Textbox(&#39;postalcode&#39;, web.form.regexp(&#39;\d+&#39;, &#39;number thanx!&#39;), web.form.notnull, description=&quot;Postalcode / zip&quot;), -</a><a href="#h0-0-290" id="h0-0-290" class="i">+ web.form.Textbox(&#39;email&#39;, web.form.notnull, description=&quot;Email:&quot;), -</a><a href="#h0-0-291" id="h0-0-291" class="i">+ web.form.Button(&#39;Calculate shipping cost&#39;)) -</a><a href="#h0-0-292" id="h0-0-292" class="i">+ def GET(self, pending_key): -</a><a href="#h0-0-293" id="h0-0-293" class="i">+ #checkavailable() -</a><a href="#h0-0-294" id="h0-0-294" class="i">+ checkoutform = self.form() -</a><a href="#h0-0-295" id="h0-0-295" class="i">+ if pending_key: -</a><a href="#h0-0-296" id="h0-0-296" class="i">+ oldinfo = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + pending_key + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;) -</a><a href="#h0-0-297" id="h0-0-297" class="i">+ oldinfo = oldinfo[0] -</a><a href="#h0-0-298" id="h0-0-298" class="i">+ checkoutform.fill(country=oldinfo.country, firstname=oldinfo.firstname, lastname=oldinfo.lastname, address=oldinfo.address, town=oldinfo.town, postalcode=oldinfo.postalcode, email=oldinfo.email) -</a><a href="#h0-0-299" id="h0-0-299" class="i">+ b = BtcConverter() -</a><a href="#h0-0-300" id="h0-0-300" class="i">+ bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -</a><a href="#h0-0-301" id="h0-0-301" class="i">+ return render.checkout(checkoutform, bag, b, productname, float) -</a><a href="#h0-0-302" id="h0-0-302" class="i">+ def POST(self, pending_key): -</a><a href="#h0-0-303" id="h0-0-303" class="i">+ checkoutform = self.form() -</a><a href="#h0-0-304" id="h0-0-304" class="i">+ i = web.input() -</a><a href="#h0-0-305" id="h0-0-305" class="i">+ if i.country != &#39;NO-SHIPPING&#39;: -</a><a href="#h0-0-306" id="h0-0-306" class="i">+ if not checkoutform.validates(): -</a><a href="#h0-0-307" id="h0-0-307" class="i">+ b = BtcConverter() -</a><a href="#h0-0-308" id="h0-0-308" class="i">+ return render.checkout(checkoutform, session.bag, b) -</a><a href="#h0-0-309" id="h0-0-309" class="i">+ if pending_key: -</a><a href="#h0-0-310" id="h0-0-310" class="i">+ db.update(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + pending_key +&quot;&#39;&quot;, country=i.country, firstname=i.firstname, lastname=i.lastname, address=i.address, town=i.town, postalcode=i.postalcode, email=i.email, dateadded=datetime.datetime.now()) -</a><a href="#h0-0-311" id="h0-0-311" class="i">+ else: -</a><a href="#h0-0-312" id="h0-0-312" class="i">+ pending_key = session.sessionkey -</a><a href="#h0-0-313" id="h0-0-313" class="i">+ db.insert(&#39;pending&#39;, invoice_key=pending_key, country=i.country, firstname=i.firstname, lastname=i.lastname, address=i.address, town=i.town, postalcode=i.postalcode, email=i.email, dateadded=datetime.datetime.now()) -</a><a href="#h0-0-314" id="h0-0-314" class="i">+ raise web.seeother(&#39;/pending/&#39; + pending_key) -</a><a href="#h0-0-315" id="h0-0-315" class="i">+ -</a><a href="#h0-0-316" id="h0-0-316" class="i">+class pending: -</a><a href="#h0-0-317" id="h0-0-317" class="i">+ form = web.form.Form( -</a><a href="#h0-0-318" id="h0-0-318" class="i">+ web.form.Dropdown(&#39;payment&#39;, [&#39;Bitcoin Lightning&#39;, &#39;Bitcoin&#39;], web.form.notnull, description=&quot;Select payment method&quot;), -</a><a href="#h0-0-319" id="h0-0-319" class="i">+ web.form.Button(&#39;Pay&#39;)) -</a><a href="#h0-0-320" id="h0-0-320" class="i">+ def GET(self, pending_key): -</a><a href="#h0-0-321" id="h0-0-321" class="i">+ #checkavailable() -</a><a href="#h0-0-322" id="h0-0-322" class="i">+ pendingform = self.form() -</a><a href="#h0-0-323" id="h0-0-323" class="i">+ if pending_key: -</a><a href="#h0-0-324" id="h0-0-324" class="i">+ pendinginfo = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + pending_key + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;) -</a><a href="#h0-0-325" id="h0-0-325" class="i">+ pendinginfo = pendinginfo[0] -</a><a href="#h0-0-326" id="h0-0-326" class="i">+ shippinginfo = db.select(&#39;shipping&#39;, where=&quot;country=&#39;&quot; + pendinginfo.country + &quot;&#39;&quot;, what=&#39;price, days&#39;) -</a><a href="#h0-0-327" id="h0-0-327" class="i">+ shippinginfo = shippinginfo[0] -</a><a href="#h0-0-328" id="h0-0-328" class="i">+ b = BtcConverter() -</a><a href="#h0-0-329" id="h0-0-329" class="i">+ bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -</a><a href="#h0-0-330" id="h0-0-330" class="i">+ return render.pending(pending_key, pendingform, pendinginfo, shippinginfo, bag, b, productname, float) -</a><a href="#h0-0-331" id="h0-0-331" class="i">+ def POST(self, pending_key): -</a><a href="#h0-0-332" id="h0-0-332" class="i">+ pendingform = self.form() -</a><a href="#h0-0-333" id="h0-0-333" class="i">+ if pending_key: -</a><a href="#h0-0-334" id="h0-0-334" class="i">+ pendinginfo = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + pending_key + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;) -</a><a href="#h0-0-335" id="h0-0-335" class="i">+ pendinginfo = pendinginfo[0] -</a><a href="#h0-0-336" id="h0-0-336" class="i">+ shippinginfo = db.select(&#39;shipping&#39;, where=&quot;country=&#39;&quot; + pendinginfo.country + &quot;&#39;&quot;, what=&#39;price, days&#39;) -</a><a href="#h0-0-337" id="h0-0-337" class="i">+ shippinginfo = shippinginfo[0] -</a><a href="#h0-0-338" id="h0-0-338" class="i">+ i = web.input() -</a><a href="#h0-0-339" id="h0-0-339" class="i">+ #if session.bag != []: -</a><a href="#h0-0-340" id="h0-0-340" class="i">+ totalamount = 0 -</a><a href="#h0-0-341" id="h0-0-341" class="i">+ description = &#39;&#39; -</a><a href="#h0-0-342" id="h0-0-342" class="i">+ bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -</a><a href="#h0-0-343" id="h0-0-343" class="i">+ comma = &#39;&#39; -</a><a href="#h0-0-344" id="h0-0-344" class="i">+ for s in bag: -</a><a href="#h0-0-345" id="h0-0-345" class="i">+ totalamount += s.price -</a><a href="#h0-0-346" id="h0-0-346" class="i">+ description += comma + str(s.quantity) + &#39; x &#39; + productname(s.product) -</a><a href="#h0-0-347" id="h0-0-347" class="i">+ comma = &#39;, &#39; -</a><a href="#h0-0-348" id="h0-0-348" class="i">+ totalamount += shippinginfo.price -</a><a href="#h0-0-349" id="h0-0-349" class="i">+ b = BtcConverter() -</a><a href="#h0-0-350" id="h0-0-350" class="i">+ totsats = int(b.convert_to_btc(float(totalamount/100), &#39;EUR&#39;) * 100000000) -</a><a href="#h0-0-351" id="h0-0-351" class="i">+ totbtc = int(b.convert_to_btc(float(totalamount/100), &#39;EUR&#39;)) -</a><a href="#h0-0-352" id="h0-0-352" class="i">+ print(str(totalamount) + &#39; | &#39; + description) -</a><a href="#h0-0-353" id="h0-0-353" class="i">+ print(str(totsats) + &#39; | &#39; + description) -</a><a href="#h0-0-354" id="h0-0-354" class="i">+ #else: -</a><a href="#h0-0-355" id="h0-0-355" class="i">+ # web.seeother(&#39;/&#39;) -</a><a href="#h0-0-356" id="h0-0-356" class="i">+ #make lightning invoice -</a><a href="#h0-0-357" id="h0-0-357" class="i">+ invoice = createinvoice(totsats, description, pending_key) -</a><a href="#h0-0-358" id="h0-0-358" class="i">+ callsubprocess(&#39;qrencode -s 5 -o &#39;+ staticdir + &#39;qr/&#39; + invoice[&#39;id&#39;]+&#39;.png &#39; + invoice[&#39;payreq&#39;]) -</a><a href="#h0-0-359" id="h0-0-359" class="i">+ #make bitcoin address -</a><a href="#h0-0-360" id="h0-0-360" class="i">+ bitcoinrpc = AuthServiceProxy(rpcauth) -</a><a href="#h0-0-361" id="h0-0-361" class="i">+ newaddress = bitcoinrpc.getnewaddress(&#39;GetDaFuckOuttaHere Butik&#39;) -</a><a href="#h0-0-362" id="h0-0-362" class="i">+ bitcoinrpc = None -</a><a href="#h0-0-363" id="h0-0-363" class="i">+ btcuri = &#39;bitcoin:&#39; + newaddress + &#39;?amount=&#39; + str(totbtc) + &#39;&amp;label=&#39; + description -</a><a href="#h0-0-364" id="h0-0-364" class="i">+ callsubprocess(&#39;qrencode -s 5 -o &#39;+ staticdir + &#39;qr/&#39; + newaddress +&#39;.png &#39; + btcuri) -</a><a href="#h0-0-365" id="h0-0-365" class="i">+ try: -</a><a href="#h0-0-366" id="h0-0-366" class="i">+ db.query(&quot;DELETE FROM invoices WHERE invoice_key=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -</a><a href="#h0-0-367" id="h0-0-367" class="i">+ except: -</a><a href="#h0-0-368" id="h0-0-368" class="i">+ print(&#39;no old invoices to delete&#39;) -</a><a href="#h0-0-369" id="h0-0-369" class="i">+ db.insert(&#39;invoices&#39;, invoice_key=pending_key, btc=newaddress, ln=invoice[&#39;id&#39;], products=description, payment=i.payment, amount=totalamount, totsats=totsats, timestamp=time.strftime(&#39;%Y-%m-%d %H:%M:%S&#39;)) -</a><a href="#h0-0-370" id="h0-0-370" class="i">+ # send mail to op -</a><a href="#h0-0-371" id="h0-0-371" class="i">+ msg = &#39;You got a new order, from &#39; + pendinginfo.firstname + &#39; &#39; + pendinginfo.lastname + &#39; from &#39; + pendinginfo.country + &#39; email: &#39; + pendinginfo.email + &#39; this dude wantz &#39; + description + &#39; for &#39; + str(int(totalamount/100)) + &#39;€ &#39; + &#39; with &#39; + i.payment -</a><a href="#h0-0-372" id="h0-0-372" class="i">+ sendmail(webmaster, &#39;GetDaFuckOuttaHere Shop&#39;, msg) -</a><a href="#h0-0-373" id="h0-0-373" class="i">+ # send mail to customer -</a><a href="#h0-0-374" id="h0-0-374" class="i">+ if i.payment == &#39;Bitcoin&#39;: -</a><a href="#h0-0-375" id="h0-0-375" class="i">+ paymentlink = &#39;paybtc/&#39; -</a><a href="#h0-0-376" id="h0-0-376" class="i">+ if i.payment == &#39;Bitcoin Lightning&#39;: -</a><a href="#h0-0-377" id="h0-0-377" class="i">+ paymentlink = &#39;payln/&#39; -</a><a href="#h0-0-378" id="h0-0-378" class="i">+ if pendinginfo.email != &#39;&#39;: -</a><a href="#h0-0-379" id="h0-0-379" class="i">+ msg = &quot;Thank you for ordering &quot; + description + &quot; at GetDaFuckOuttaHere Shop, we&#39;ll be processing your order as soon as possible and send it to &quot; + pendinginfo.firstname + &#39; &#39; + pendinginfo.lastname + &#39;, &#39; + pendinginfo.address + &#39;, &#39; + str(pendinginfo.postalcode) + &#39;, &#39; + pendinginfo.town + &#39;, &#39; + pendinginfo.country + &#39;. To pay/view status of your order please visit &#39; + baseurl + paymentlink + pending_key -</a><a href="#h0-0-380" id="h0-0-380" class="i">+ sendmail(pendinginfo.email, &#39;GetDaFuckOuttaHere Shop&#39;, msg) -</a><a href="#h0-0-381" id="h0-0-381" class="i">+ if i.payment == &#39;Bitcoin&#39;: -</a><a href="#h0-0-382" id="h0-0-382" class="i">+ return web.seeother(&#39;/paybtc/&#39; + pending_key) -</a><a href="#h0-0-383" id="h0-0-383" class="i">+ if i.payment == &#39;Bitcoin Lightning&#39;: -</a><a href="#h0-0-384" id="h0-0-384" class="i">+ return web.seeother(&#39;/payln/&#39; + pending_key) -</a><a href="#h0-0-385" id="h0-0-385" class="i">+ else: -</a><a href="#h0-0-386" id="h0-0-386" class="i">+ return web.seeother(&#39;/&#39;) -</a><a href="#h0-0-387" id="h0-0-387" class="i">+ -</a><a href="#h0-0-388" id="h0-0-388" class="i">+class payln: -</a><a href="#h0-0-389" id="h0-0-389" class="i">+ def GET(self, invoice_key): -</a><a href="#h0-0-390" id="h0-0-390" class="i">+ #checkavailable() -</a><a href="#h0-0-391" id="h0-0-391" class="i">+ invoice = db.select(&#39;invoices&#39;, where=&quot;invoice_key=&#39;&quot; + invoice_key + &quot;&#39;&quot;, what=&#39;invoice_key, btc, ln, products, payment, amount, totsats, timestamp, status, datepaid, dateshipped&#39;)[0] -</a><a href="#h0-0-392" id="h0-0-392" class="i">+ lninvoice = getinvoice(invoice.ln) -</a><a href="#h0-0-393" id="h0-0-393" class="i">+ bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -</a><a href="#h0-0-394" id="h0-0-394" class="i">+ if invoice_key == session.sessionkey: -</a><a href="#h0-0-395" id="h0-0-395" class="i">+ return render.payln(lninvoice, invoice, bag, productname, float) -</a><a href="#h0-0-396" id="h0-0-396" class="i">+ else: -</a><a href="#h0-0-397" id="h0-0-397" class="i">+ raise web.seeother(&#39;/?error=timeout&#39;) -</a><a href="#h0-0-398" id="h0-0-398" class="i">+ def POST(self, id): -</a><a href="#h0-0-399" id="h0-0-399" class="i">+ data = web.data() -</a><a href="#h0-0-400" id="h0-0-400" class="i">+ data = data.decode(&#39;utf8&#39;).replace(&quot;&#39;&quot;, &#39;&quot;&#39;) -</a><a href="#h0-0-401" id="h0-0-401" class="i">+ data = json.loads(data) -</a><a href="#h0-0-402" id="h0-0-402" class="i">+ print(data) -</a><a href="#h0-0-403" id="h0-0-403" class="i">+ if data[&#39;status&#39;] == &#39;paid&#39;: -</a><a href="#h0-0-404" id="h0-0-404" class="i">+ print(&quot;Hurray it worked&quot;) -</a><a href="#h0-0-405" id="h0-0-405" class="i">+ sold() -</a><a href="#h0-0-406" id="h0-0-406" class="i">+ return render.thankyou(id) -</a><a href="#h0-0-407" id="h0-0-407" class="i">+ -</a><a href="#h0-0-408" id="h0-0-408" class="i">+class paybtc: -</a><a href="#h0-0-409" id="h0-0-409" class="i">+ def GET(self, invoice_key): -</a><a href="#h0-0-410" id="h0-0-410" class="i">+ invoice = db.select(&#39;invoices&#39;, where=&quot;invoice_key=&#39;&quot; + invoice_key + &quot;&#39;&quot;, what=&#39;invoice_key, btc, ln, products, payment, amount, totsats, timestamp, status, datepaid, dateshipped&#39;)[0] -</a><a href="#h0-0-411" id="h0-0-411" class="i">+ totbtc = float(invoice.totsats * 0.00000001) -</a><a href="#h0-0-412" id="h0-0-412" class="i">+ btcaddress = invoice.btc -</a><a href="#h0-0-413" id="h0-0-413" class="i">+ btcuri = &#39;bitcoin:&#39; + btcaddress + &#39;?amount=&#39; + str(totbtc) + &#39;&amp;label=&#39; + invoice.products -</a><a href="#h0-0-414" id="h0-0-414" class="i">+ bitcoinrpc = AuthServiceProxy(rpcauth) -</a><a href="#h0-0-415" id="h0-0-415" class="i">+ showpayment = bitcoinrpc.listreceivedbyaddress(0, True, True, btcaddress) -</a><a href="#h0-0-416" id="h0-0-416" class="i">+ bitcoinrpc = None -</a><a href="#h0-0-417" id="h0-0-417" class="i">+ if showpayment: -</a><a href="#h0-0-418" id="h0-0-418" class="i">+ for i in showpayment: -</a><a href="#h0-0-419" id="h0-0-419" class="i">+ confirmations = int(i[&#39;confirmations&#39;]) -</a><a href="#h0-0-420" id="h0-0-420" class="i">+ print(str(confirmations)) -</a><a href="#h0-0-421" id="h0-0-421" class="i">+ if invoice.datepaid == None and confirmations &gt; 6: -</a><a href="#h0-0-422" id="h0-0-422" class="i">+ msg = &#39;GetDaFuckOuttaHere order update! someone sent you Bitcoin! &#39; + baseurl + &#39;/paybtc/&#39; + invoice.invoice_key -</a><a href="#h0-0-423" id="h0-0-423" class="i">+ print(msg) -</a><a href="#h0-0-424" id="h0-0-424" class="i">+ sendmail(webmaster, &#39;GetDaFuckOuttaHere Shop&#39;, msg) -</a><a href="#h0-0-425" id="h0-0-425" class="i">+ db.update(&#39;invoices&#39;, where=&quot;invoice_key=&#39;&quot; + invoice.invoice_key + &quot;&#39;&quot;, status=&#39;paid&#39;, datepaid=time.strftime(&#39;%Y-%m-%d %H:%M:%S&#39;)) -</a><a href="#h0-0-426" id="h0-0-426" class="i">+ return render.paybtc(invoice, btcaddress, btcuri, showpayment) -</a><a href="#h0-0-427" id="h0-0-427" class="i">+ -</a><a href="#h0-0-428" id="h0-0-428" class="i">+class payments: -</a><a href="#h0-0-429" id="h0-0-429" class="i">+ def GET(self): -</a><a href="#h0-0-430" id="h0-0-430" class="i">+ w = web.input() -</a><a href="#h0-0-431" id="h0-0-431" class="i">+ if w: -</a><a href="#h0-0-432" id="h0-0-432" class="i">+ db.update(&#39;invoices&#39;, where=&quot;invoice_key=&#39;&quot; + w.key + &quot;&#39;&quot;, status=w.status) -</a><a href="#h0-0-433" id="h0-0-433" class="i">+ #get the right invoice send mail -</a><a href="#h0-0-434" id="h0-0-434" class="i">+ customer = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + w.key + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;)[0] -</a><a href="#h0-0-435" id="h0-0-435" class="i">+ payment = db.select(&#39;invoices&#39;, where=&quot;invoice_key=&#39;&quot; + w.key + &quot;&#39;&quot;, what=&#39;btc, ln, invoice_key, products, payment, amount, totsats, timestamp, status, datepaid, dateshipped&#39;)[0] -</a><a href="#h0-0-436" id="h0-0-436" class="i">+ if payment.payment == &#39;Bitcoin&#39;: -</a><a href="#h0-0-437" id="h0-0-437" class="i">+ paylink = &#39;paybtc/&#39; -</a><a href="#h0-0-438" id="h0-0-438" class="i">+ elif payment.payment == &#39;Bitcoin Lightning&#39;: -</a><a href="#h0-0-439" id="h0-0-439" class="i">+ paylink = &#39;payln/&#39; -</a><a href="#h0-0-440" id="h0-0-440" class="i">+ if w.status == &#39;thankyou&#39;: -</a><a href="#h0-0-441" id="h0-0-441" class="i">+ msg=&quot;Hi &quot; + customer.firstname + &quot; &quot; + customer.lastname + &quot;, thank you for ordering. You can track the status of your order at &quot; + baseurl + paylink + payment.invoice_key -</a><a href="#h0-0-442" id="h0-0-442" class="i">+ sendmail(customer.email, &#39;GetDaFuckOuttaHere Shop, a thank you!&#39;, msg) -</a><a href="#h0-0-443" id="h0-0-443" class="i">+ elif w.status == &#39;shipped&#39;: -</a><a href="#h0-0-444" id="h0-0-444" class="i">+ msg=&quot;Hi &quot; + customer.firstname + &quot; &quot; + customer.lastname + &quot;, your order has been shipped!. You can track the status of your order at &quot; + baseurl + paylink + payment.invoice_key -</a><a href="#h0-0-445" id="h0-0-445" class="i">+ sendmail(customer.email, &#39;GetDaFuckOuttaHere Shop, order shipped!&#39;, msg) -</a><a href="#h0-0-446" id="h0-0-446" class="i">+ paymentdict = {} -</a><a href="#h0-0-447" id="h0-0-447" class="i">+ listpayments = [] -</a><a href="#h0-0-448" id="h0-0-448" class="i">+ payments = db.select(&#39;invoices&#39;, what=&#39;btc, ln, invoice_key, products, payment, amount, totsats, timestamp, status, datepaid, dateshipped&#39;, order=&#39;timestamp DESC&#39;) -</a><a href="#h0-0-449" id="h0-0-449" class="i">+ for i in payments: -</a><a href="#h0-0-450" id="h0-0-450" class="i">+ pending = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + i.invoice_key + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;) -</a><a href="#h0-0-451" id="h0-0-451" class="i">+ i.update(pending[0]) -</a><a href="#h0-0-452" id="h0-0-452" class="i">+ listpayments.append(i) -</a><a href="#h0-0-453" id="h0-0-453" class="i">+ return renderop.payments(listpayments) -</a><a href="#h0-0-454" id="h0-0-454" class="i">+ -</a><a href="#h0-0-455" id="h0-0-455" class="i">+class payment: -</a><a href="#h0-0-456" id="h0-0-456" class="i">+ def GET(self, invoice_key): -</a><a href="#h0-0-457" id="h0-0-457" class="i">+ id = db.where(&#39;invoices&#39;, invoice_key=invoice_key)[0][&#39;ln&#39;] -</a><a href="#h0-0-458" id="h0-0-458" class="i">+ invoice = getinvoice(id) -</a><a href="#h0-0-459" id="h0-0-459" class="i">+ return render.payment(invoice) -</a><a href="#h0-0-460" id="h0-0-460" class="i">+ -</a><a href="#h0-0-461" id="h0-0-461" class="i">+class thankyou: -</a><a href="#h0-0-462" id="h0-0-462" class="i">+ def GET(self, id): -</a><a href="#h0-0-463" id="h0-0-463" class="i">+ return render.thankyou(id) -</a><a href="#h0-0-464" id="h0-0-464" class="i">+ -</a><a href="#h0-0-465" id="h0-0-465" class="i">+class login: -</a><a href="#h0-0-466" id="h0-0-466" class="i">+ form = web.form.Form( -</a><a href="#h0-0-467" id="h0-0-467" class="i">+ web.form.Textbox(&#39;user&#39;, web.form.notnull, description=&quot;User&quot;), -</a><a href="#h0-0-468" id="h0-0-468" class="i">+ web.form.Password(&#39;password&#39;, web.form.notnull, description=&quot;Passcode&quot;), -</a><a href="#h0-0-469" id="h0-0-469" class="i">+ web.form.Button(&#39;Login&#39;)) -</a><a href="#h0-0-470" id="h0-0-470" class="i">+ def GET(self): -</a><a href="#h0-0-471" id="h0-0-471" class="i">+ if not logged(): -</a><a href="#h0-0-472" id="h0-0-472" class="i">+ loginform = self.form() -</a><a href="#h0-0-473" id="h0-0-473" class="i">+ return render.login(loginform) -</a><a href="#h0-0-474" id="h0-0-474" class="i">+ else: -</a><a href="#h0-0-475" id="h0-0-475" class="i">+ raise web.seeother(&#39;/op&#39;) -</a><a href="#h0-0-476" id="h0-0-476" class="i">+ def POST(self): -</a><a href="#h0-0-477" id="h0-0-477" class="i">+ loginform = self.form() -</a><a href="#h0-0-478" id="h0-0-478" class="i">+ if not loginform.validates(): -</a><a href="#h0-0-479" id="h0-0-479" class="i">+ return render.login(loginform) -</a><a href="#h0-0-480" id="h0-0-480" class="i">+ else: -</a><a href="#h0-0-481" id="h0-0-481" class="i">+ i = web.input() -</a><a href="#h0-0-482" id="h0-0-482" class="i">+ if (i.user,i.password) in allowed: -</a><a href="#h0-0-483" id="h0-0-483" class="i">+ session.login = 1 -</a><a href="#h0-0-484" id="h0-0-484" class="i">+ raise web.seeother(&#39;/op&#39;) -</a><a href="#h0-0-485" id="h0-0-485" class="i">+ else: -</a><a href="#h0-0-486" id="h0-0-486" class="i">+ return render.login(loginform) -</a><a href="#h0-0-487" id="h0-0-487" class="i">+ -</a><a href="#h0-0-488" id="h0-0-488" class="i">+class logout: -</a><a href="#h0-0-489" id="h0-0-489" class="i">+ def GET(self): -</a><a href="#h0-0-490" id="h0-0-490" class="i">+ session.login = 0 -</a><a href="#h0-0-491" id="h0-0-491" class="i">+ raise web.seeother(&#39;/&#39;) -</a><a href="#h0-0-492" id="h0-0-492" class="i">+ -</a><a href="#h0-0-493" id="h0-0-493" class="i">+class op: -</a><a href="#h0-0-494" id="h0-0-494" class="i">+ def GET(self): -</a><a href="#h0-0-495" id="h0-0-495" class="i">+ if logged(): -</a><a href="#h0-0-496" id="h0-0-496" class="i">+ return renderop.operator() -</a><a href="#h0-0-497" id="h0-0-497" class="i">+ else: -</a><a href="#h0-0-498" id="h0-0-498" class="i">+ raise web.seeother(&#39;/login&#39;) -</a><a href="#h0-0-499" id="h0-0-499" class="i">+ -</a><a href="#h0-0-500" id="h0-0-500" class="i">+class categories: -</a><a href="#h0-0-501" id="h0-0-501" class="i">+ form = web.form.Form( -</a><a href="#h0-0-502" id="h0-0-502" class="i">+ web.form.Textbox(&#39;category&#39;, web.form.notnull, description=&quot;Add Category:&quot;), -</a><a href="#h0-0-503" id="h0-0-503" class="i">+ web.form.Button(&#39;Add&#39;)) -</a><a href="#h0-0-504" id="h0-0-504" class="i">+ def GET(self): -</a><a href="#h0-0-505" id="h0-0-505" class="i">+ if logged(): -</a><a href="#h0-0-506" id="h0-0-506" class="i">+ i = web.input(delete=None) -</a><a href="#h0-0-507" id="h0-0-507" class="i">+ if i.delete: -</a><a href="#h0-0-508" id="h0-0-508" class="i">+ db.delete(&#39;categories&#39;, where=&#39;id=&#39;+i.delete) -</a><a href="#h0-0-509" id="h0-0-509" class="i">+ listcategories = db.query(&quot;SELECT * FROM categories ORDER BY id DESC&quot;) -</a><a href="#h0-0-510" id="h0-0-510" class="i">+ addcategory = self.form() -</a><a href="#h0-0-511" id="h0-0-511" class="i">+ return renderop.categories(listcategories,addcategory) -</a><a href="#h0-0-512" id="h0-0-512" class="i">+ else: -</a><a href="#h0-0-513" id="h0-0-513" class="i">+ raise web.seeother(&#39;/login&#39;) -</a><a href="#h0-0-514" id="h0-0-514" class="i">+ def POST(self): -</a><a href="#h0-0-515" id="h0-0-515" class="i">+ addcategory = self.form() -</a><a href="#h0-0-516" id="h0-0-516" class="i">+ i = web.input() -</a><a href="#h0-0-517" id="h0-0-517" class="i">+ db.insert(&#39;categories&#39;, category=i.category) -</a><a href="#h0-0-518" id="h0-0-518" class="i">+ raise web.seeother(&#39;/categories&#39;) -</a><a href="#h0-0-519" id="h0-0-519" class="i">+ -</a><a href="#h0-0-520" id="h0-0-520" class="i">+ -</a><a href="#h0-0-521" id="h0-0-521" class="i">+class products: -</a><a href="#h0-0-522" id="h0-0-522" class="i">+ listcategories = db.query(&quot;SELECT * FROM categories ORDER BY id DESC&quot;) -</a><a href="#h0-0-523" id="h0-0-523" class="i">+ p = [] -</a><a href="#h0-0-524" id="h0-0-524" class="i">+ for i in listcategories: -</a><a href="#h0-0-525" id="h0-0-525" class="i">+ p.append(i.category) -</a><a href="#h0-0-526" id="h0-0-526" class="i">+ #p = listcategories[0] -</a><a href="#h0-0-527" id="h0-0-527" class="i">+ form = web.form.Form( -</a><a href="#h0-0-528" id="h0-0-528" class="i">+ web.form.Dropdown(&#39;category&#39;, p, web.form.notnull, description=&quot;Category:&quot;), -</a><a href="#h0-0-529" id="h0-0-529" class="i">+ web.form.Textbox(&#39;name&#39;, web.form.notnull, description=&quot;Name:&quot;), -</a><a href="#h0-0-530" id="h0-0-530" class="i">+ web.form.Textarea(&#39;description&#39;, web.form.notnull, description=&quot;Description:&quot;), -</a><a href="#h0-0-531" id="h0-0-531" class="i">+ web.form.Textbox(&#39;price&#39;, web.form.regexp(&#39;\d+&#39;, &#39;number thanx!&#39;), web.form.notnull, description=&quot;Price in cents&quot;), -</a><a href="#h0-0-532" id="h0-0-532" class="i">+ web.form.Textbox(&#39;available&#39;, web.form.notnull, web.form.regexp(&#39;\d+&#39;, &#39;number dumbass!&#39;), description=&quot;Available&quot;), -</a><a href="#h0-0-533" id="h0-0-533" class="i">+ web.form.Textbox(&#39;priority&#39;, web.form.notnull, web.form.regexp(&#39;\d+&#39;, &#39;number dumbass!&#39;), description=&quot;Priority (high value more priority)&quot;), -</a><a href="#h0-0-534" id="h0-0-534" class="i">+ web.form.Button(&#39;Save&#39;)) -</a><a href="#h0-0-535" id="h0-0-535" class="i">+ def GET(self, idvalue): -</a><a href="#h0-0-536" id="h0-0-536" class="i">+ if logged(): -</a><a href="#h0-0-537" id="h0-0-537" class="i">+ i = web.input() -</a><a href="#h0-0-538" id="h0-0-538" class="i">+ if i: -</a><a href="#h0-0-539" id="h0-0-539" class="i">+ if i.cmd == &#39;del&#39;: -</a><a href="#h0-0-540" id="h0-0-540" class="i">+ db.delete(&#39;products&#39;, where=&#39;id=&#39; + idvalue) -</a><a href="#h0-0-541" id="h0-0-541" class="i">+ imgdir = staticdir + &#39;img/&#39; + idvalue -</a><a href="#h0-0-542" id="h0-0-542" class="i">+ try: -</a><a href="#h0-0-543" id="h0-0-543" class="i">+ shutil.rmtree(imgdir,ignore_errors=True,onerror=None) -</a><a href="#h0-0-544" id="h0-0-544" class="i">+ except: -</a><a href="#h0-0-545" id="h0-0-545" class="i">+ print(&#39;no picture folder, nothing to remove...&#39;) -</a><a href="#h0-0-546" id="h0-0-546" class="i">+ pass -</a><a href="#h0-0-547" id="h0-0-547" class="i">+ raise web.seeother(&#39;/products/&#39;) -</a><a href="#h0-0-548" id="h0-0-548" class="i">+ if i.cmd == &#39;removeimg&#39;: -</a><a href="#h0-0-549" id="h0-0-549" class="i">+ os.remove(staticdir + &#39;/img/&#39; + idvalue + &#39;/&#39; + i.img) -</a><a href="#h0-0-550" id="h0-0-550" class="i">+ os.remove(staticdir + &#39;/img/&#39; + idvalue + &#39;/web/&#39; + i.img) -</a><a href="#h0-0-551" id="h0-0-551" class="i">+ os.remove(staticdir + &#39;/img/&#39; + idvalue + &#39;/thumb/&#39; + i.img) -</a><a href="#h0-0-552" id="h0-0-552" class="i">+ raise web.seeother(&#39;/products/&#39; + idvalue) -</a><a href="#h0-0-553" id="h0-0-553" class="i">+ organizepics(idvalue) -</a><a href="#h0-0-554" id="h0-0-554" class="i">+ addproduct = self.form() -</a><a href="#h0-0-555" id="h0-0-555" class="i">+ addproduct.fill(available=&#39;1&#39;, priority=&#39;1&#39;) -</a><a href="#h0-0-556" id="h0-0-556" class="i">+ if idvalue: -</a><a href="#h0-0-557" id="h0-0-557" class="i">+ oldinfo = db.select(&#39;products&#39;, where=&quot;id=&quot; + idvalue, what=&#39;name, description, price, available, priority, category&#39;) -</a><a href="#h0-0-558" id="h0-0-558" class="i">+ oldinfo = oldinfo[0] -</a><a href="#h0-0-559" id="h0-0-559" class="i">+ addproduct.fill(name=oldinfo.name, description=oldinfo.description, price=oldinfo.price, available=oldinfo.available, priority=oldinfo.priority, category=oldinfo.category) -</a><a href="#h0-0-560" id="h0-0-560" class="i">+ listproducts = db.query(&quot;SELECT * FROM products ORDER BY priority DESC&quot;) -</a><a href="#h0-0-561" id="h0-0-561" class="i">+ imgdir = staticdir + &#39;img/&#39; + idvalue + &#39;/web/&#39; -</a><a href="#h0-0-562" id="h0-0-562" class="i">+ try: -</a><a href="#h0-0-563" id="h0-0-563" class="i">+ productimages = sorted(os.listdir(imgdir)) -</a><a href="#h0-0-564" id="h0-0-564" class="i">+ print(productimages) -</a><a href="#h0-0-565" id="h0-0-565" class="i">+ except: -</a><a href="#h0-0-566" id="h0-0-566" class="i">+ productimages = [] -</a><a href="#h0-0-567" id="h0-0-567" class="i">+ print(&#39;No productimages for this product&#39;) -</a><a href="#h0-0-568" id="h0-0-568" class="i">+ return renderop.products(addproduct, listproducts, productimages, idvalue) -</a><a href="#h0-0-569" id="h0-0-569" class="i">+ else: -</a><a href="#h0-0-570" id="h0-0-570" class="i">+ raise web.seeother(&#39;/login&#39;) -</a><a href="#h0-0-571" id="h0-0-571" class="i">+ def POST(self, idvalue): -</a><a href="#h0-0-572" id="h0-0-572" class="i">+ listproducts = db.query(&quot;SELECT * FROM products ORDER BY priority DESC&quot;) -</a><a href="#h0-0-573" id="h0-0-573" class="i">+ addproduct = self.form() -</a><a href="#h0-0-574" id="h0-0-574" class="i">+ if logged(): -</a><a href="#h0-0-575" id="h0-0-575" class="i">+ i = web.input(imgfile={}) -</a><a href="#h0-0-576" id="h0-0-576" class="i">+ for p in i: -</a><a href="#h0-0-577" id="h0-0-577" class="i">+ print(p) -</a><a href="#h0-0-578" id="h0-0-578" class="i">+ if i.imgfile != {}: -</a><a href="#h0-0-579" id="h0-0-579" class="i">+ if idvalue == &#39;&#39;: -</a><a href="#h0-0-580" id="h0-0-580" class="i">+ print(&#39;cant upload a picture to a non existing product&#39;) -</a><a href="#h0-0-581" id="h0-0-581" class="i">+ raise web.seeother(&#39;/products/&#39;) -</a><a href="#h0-0-582" id="h0-0-582" class="i">+ print(i.imgfile.filename) -</a><a href="#h0-0-583" id="h0-0-583" class="i">+ if i.imgfile.filename == &#39;&#39;: -</a><a href="#h0-0-584" id="h0-0-584" class="i">+ print(&#39;hmmm... no image to upload&#39;) -</a><a href="#h0-0-585" id="h0-0-585" class="i">+ raise web.seeother(&#39;/products/&#39; + idvalue) -</a><a href="#h0-0-586" id="h0-0-586" class="i">+ print(&#39;YEAH, Upload image!&#39;) -</a><a href="#h0-0-587" id="h0-0-587" class="i">+ -</a><a href="#h0-0-588" id="h0-0-588" class="i">+ ##---------- UPLOAD IMAGE ---------- -</a><a href="#h0-0-589" id="h0-0-589" class="i">+ -</a><a href="#h0-0-590" id="h0-0-590" class="i">+ imgdir = staticdir + &#39;img/&#39; + idvalue -</a><a href="#h0-0-591" id="h0-0-591" class="i">+ os.makedirs(imgdir, exist_ok=True) -</a><a href="#h0-0-592" id="h0-0-592" class="i">+ imgpath=i.imgfile.filename.replace(&#39;\\&#39;,&#39;/&#39;) # replaces the windows-style slashes with linux ones. -</a><a href="#h0-0-593" id="h0-0-593" class="i">+ #filename=filepath.split(&#39;/&#39;)[-1] # splits the and chooses the last part (the filename with extension) -</a><a href="#h0-0-594" id="h0-0-594" class="i">+ #filename = hashlib.md5(str(random.getrandbits(256)).encode(&#39;utf-8&#39;)).hexdigest() + &#39;.jpeg&#39; -</a><a href="#h0-0-595" id="h0-0-595" class="i">+ imgname = str(len(os.listdir(imgdir))).zfill(3) + &#39;.jpeg&#39; -</a><a href="#h0-0-596" id="h0-0-596" class="i">+ fout = open(imgdir +&#39;/&#39;+ imgname,&#39;wb&#39;) # creates the file where the uploaded file should be stored -</a><a href="#h0-0-597" id="h0-0-597" class="i">+ fout.write(i.imgfile.file.read()) # writes the uploaded file to the newly created file. -</a><a href="#h0-0-598" id="h0-0-598" class="i">+ fout.close() # closes the file, upload complete. -</a><a href="#h0-0-599" id="h0-0-599" class="i">+ -</a><a href="#h0-0-600" id="h0-0-600" class="i">+ ##---------- OPEN FILE &amp; CHEKC IF JPEG -------- -</a><a href="#h0-0-601" id="h0-0-601" class="i">+ -</a><a href="#h0-0-602" id="h0-0-602" class="i">+ image = Image.open(imgdir +&#39;/&#39;+ imgname) -</a><a href="#h0-0-603" id="h0-0-603" class="i">+ if image.format != &#39;JPEG&#39;: -</a><a href="#h0-0-604" id="h0-0-604" class="i">+ os.remove(imgdir +&#39;/&#39;+ imgname) -</a><a href="#h0-0-605" id="h0-0-605" class="i">+ raise web.seeother(&#39;/products/&#39; + idvalue) -</a><a href="#h0-0-606" id="h0-0-606" class="i">+ -</a><a href="#h0-0-607" id="h0-0-607" class="i">+ ##---------- RESIZE IMAGE ----------- -</a><a href="#h0-0-608" id="h0-0-608" class="i">+ try: -</a><a href="#h0-0-609" id="h0-0-609" class="i">+ os.makedirs(imgdir + &#39;/web/&#39;, exist_ok=True) -</a><a href="#h0-0-610" id="h0-0-610" class="i">+ os.makedirs(imgdir + &#39;/thumb/&#39;, exist_ok=True) -</a><a href="#h0-0-611" id="h0-0-611" class="i">+ except: -</a><a href="#h0-0-612" id="h0-0-612" class="i">+ print(&#39;Folders is&#39;) -</a><a href="#h0-0-613" id="h0-0-613" class="i">+ image.thumbnail((900,900), Image.ANTIALIAS) -</a><a href="#h0-0-614" id="h0-0-614" class="i">+ image.save(imgdir + &#39;/web/&#39; + imgname) -</a><a href="#h0-0-615" id="h0-0-615" class="i">+ image.thumbnail((300,300), Image.ANTIALIAS) -</a><a href="#h0-0-616" id="h0-0-616" class="i">+ image.save(imgdir + &#39;/thumb/&#39; + imgname) -</a><a href="#h0-0-617" id="h0-0-617" class="i">+ -</a><a href="#h0-0-618" id="h0-0-618" class="i">+ organizepics(idvalue) -</a><a href="#h0-0-619" id="h0-0-619" class="i">+ raise web.seeother(&#39;/products/&#39; + idvalue) -</a><a href="#h0-0-620" id="h0-0-620" class="i">+ if not addproduct.validates(): -</a><a href="#h0-0-621" id="h0-0-621" class="i">+ raise web.seeother(&#39;/products/&#39; + idvalue) -</a><a href="#h0-0-622" id="h0-0-622" class="i">+ else: -</a><a href="#h0-0-623" id="h0-0-623" class="i">+ if idvalue: -</a><a href="#h0-0-624" id="h0-0-624" class="i">+ db.update(&#39;products&#39;, where=&#39;id=&#39; + idvalue, category=i.category, name=i.name, description=i.description, price=i.price, available=i.available, sold=0, priority=i.priority, dateadded=datetime.datetime.now()) -</a><a href="#h0-0-625" id="h0-0-625" class="i">+ else: -</a><a href="#h0-0-626" id="h0-0-626" class="i">+ db.insert(&#39;products&#39;, category=i.category, name=i.name, description=i.description, price=i.price, available=i.available, sold=0, priority=i.priority, dateadded=datetime.datetime.now()) -</a><a href="#h0-0-627" id="h0-0-627" class="i">+ raise web.seeother(&#39;/products/&#39; + idvalue) -</a><a href="#h0-0-628" id="h0-0-628" class="i">+ else: -</a><a href="#h0-0-629" id="h0-0-629" class="i">+ raise web.seeother(&#39;/login&#39;) -</a><a href="#h0-0-630" id="h0-0-630" class="i">+ -</a><a href="#h0-0-631" id="h0-0-631" class="i">+class shipping: -</a><a href="#h0-0-632" id="h0-0-632" class="i">+ form = web.form.Form( -</a><a href="#h0-0-633" id="h0-0-633" class="i">+ web.form.Textbox(&#39;country&#39;, web.form.notnull, description=&quot;Country:&quot;), -</a><a href="#h0-0-634" id="h0-0-634" class="i">+ web.form.Textbox(&#39;price&#39;, web.form.regexp(&#39;\d+&#39;, &#39;number thanx!&#39;), web.form.notnull, description=&quot;Price in cents&quot;), -</a><a href="#h0-0-635" id="h0-0-635" class="i">+ web.form.Textbox(&#39;days&#39;, web.form.regexp(&#39;\d+&#39;, &#39;number thanx!&#39;), web.form.notnull, description=&quot;Shipping in days&quot;), -</a><a href="#h0-0-636" id="h0-0-636" class="i">+ web.form.Button(&#39;Add shipping country&#39;)) -</a><a href="#h0-0-637" id="h0-0-637" class="i">+ def GET(self, idvalue): -</a><a href="#h0-0-638" id="h0-0-638" class="i">+ if logged(): -</a><a href="#h0-0-639" id="h0-0-639" class="i">+ addcountry = self.form() -</a><a href="#h0-0-640" id="h0-0-640" class="i">+ if idvalue: -</a><a href="#h0-0-641" id="h0-0-641" class="i">+ oldinfo = db.select(&#39;shipping&#39;, where=&quot;id=&quot; + idvalue, what=&#39;country, price, days&#39;) -</a><a href="#h0-0-642" id="h0-0-642" class="i">+ oldinfo = oldinfo[0] -</a><a href="#h0-0-643" id="h0-0-643" class="i">+ addcountry.fill(country=oldinfo.country, price=oldinfo.price, days=oldinfo.days) -</a><a href="#h0-0-644" id="h0-0-644" class="i">+ listcountries = db.query(&quot;SELECT * FROM shipping ORDER BY country DESC&quot;) -</a><a href="#h0-0-645" id="h0-0-645" class="i">+ return renderop.shipping(addcountry, listcountries) -</a><a href="#h0-0-646" id="h0-0-646" class="i">+ else: -</a><a href="#h0-0-647" id="h0-0-647" class="i">+ raise web.seeother(&#39;/login&#39;) -</a><a href="#h0-0-648" id="h0-0-648" class="i">+ def POST(self, idvalue): -</a><a href="#h0-0-649" id="h0-0-649" class="i">+ if logged(): -</a><a href="#h0-0-650" id="h0-0-650" class="i">+ addcountry = self.form() -</a><a href="#h0-0-651" id="h0-0-651" class="i">+ if not addcountry.validates(): -</a><a href="#h0-0-652" id="h0-0-652" class="i">+ listcountries = db.query(&quot;SELECT * FROM shipping ORDER BY country DESC&quot;) -</a><a href="#h0-0-653" id="h0-0-653" class="i">+ return renderop.shipping(addcountry, listcountries) -</a><a href="#h0-0-654" id="h0-0-654" class="i">+ else: -</a><a href="#h0-0-655" id="h0-0-655" class="i">+ i = web.input() -</a><a href="#h0-0-656" id="h0-0-656" class="i">+ if idvalue: -</a><a href="#h0-0-657" id="h0-0-657" class="i">+ db.update(&#39;shipping&#39;, where=&#39;id=&#39; + idvalue, country=i.country, price=i.price, days=i.days) -</a><a href="#h0-0-658" id="h0-0-658" class="i">+ else: -</a><a href="#h0-0-659" id="h0-0-659" class="i">+ db.insert(&#39;shipping&#39;, country=i.country, price=i.price, days=i.days) -</a><a href="#h0-0-660" id="h0-0-660" class="i">+ raise web.seeother(&#39;/shipping/&#39;) -</a><a href="#h0-0-661" id="h0-0-661" class="i">+ else: -</a><a href="#h0-0-662" id="h0-0-662" class="i">+ raise web.seeother(&#39;/login&#39;) -</a><a href="#h0-0-663" id="h0-0-663" class="i">+ -</a><a href="#h0-0-664" id="h0-0-664" class="i">+class bitcoin: -</a><a href="#h0-0-665" id="h0-0-665" class="i">+ def GET(self): -</a><a href="#h0-0-666" id="h0-0-666" class="i">+ if logged(): -</a><a href="#h0-0-667" id="h0-0-667" class="i">+ bitcoinrpc = AuthServiceProxy(rpcauth) -</a><a href="#h0-0-668" id="h0-0-668" class="i">+ wallet = bitcoinrpc.getwalletinfo() -</a><a href="#h0-0-669" id="h0-0-669" class="i">+ bitcoinrpc = None -</a><a href="#h0-0-670" id="h0-0-670" class="i">+ return renderop.bitcoin(wallet) -</a><a href="#h0-0-671" id="h0-0-671" class="i">+ -</a><a href="#h0-0-672" id="h0-0-672" class="i">+application = app.wsgifunc() -</a></pre> -</div> -</body> -</html> diff --git a/public_html/static/git/commit/f51d79da0711ee549da7c615cc1ad62f6ffc7f88.html b/public_html/static/git/commit/f51d79da0711ee549da7c615cc1ad62f6ffc7f88.html @@ -1,261 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>more stuff - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../style.css" /> -</head> -<body> -<table><tr><td><a href="../../"><img src="../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../log.html">Log</a> | <a href="../files.html">Files</a> | <a href="../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<pre><b>commit</b> <a href="../commit/f51d79da0711ee549da7c615cc1ad62f6ffc7f88.html">f51d79da0711ee549da7c615cc1ad62f6ffc7f88</a> -<b>parent</b> <a href="../commit/fa47ab78e071920bb57c203271b3b28595340324.html">fa47ab78e071920bb57c203271b3b28595340324</a> -<b>Author:</b> rob &lt;<a href="mailto:rob@tarina.org">rob@tarina.org</a>&gt; -<b>Date:</b> Sat, 16 Oct 2021 08:26:35 +0300 - -more stuff - -<b>Diffstat:</b> -<table><tr><td class="A">A</td><td><a href="#h0">public_html/static/style.css</a></td><td> | </td><td class="num">228</td><td><span class="i">+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -</table></pre><pre>1 file changed, 228 insertions(+), 0 deletions(-) -<hr/><b>diff --git a/<a id="h0" href="../file/public_html/static/style.css.html">public_html/static/style.css</a> b/<a href="../file/public_html/static/style.css.html">public_html/static/style.css</a></b> -<a href="#h0-0" id="h0-0" class="h">@@ -0,0 +1,228 @@ -</a><a href="#h0-0-0" id="h0-0-0" class="i">+@font-face{ -</a><a href="#h0-0-1" id="h0-0-1" class="i">+font-family: &quot;Latin-Mono-Regular&quot;; -</a><a href="#h0-0-2" id="h0-0-2" class="i">+src: url(&#39;fonts/lmmono10-regular.otf&#39;), -</a><a href="#h0-0-3" id="h0-0-3" class="i">+url(&#39;fonts/lmmono10-regular.otf&#39;); /* IE */ -</a><a href="#h0-0-4" id="h0-0-4" class="i">+} -</a><a href="#h0-0-5" id="h0-0-5" class="i">+ -</a><a href="#h0-0-6" id="h0-0-6" class="i">+@font-face{ -</a><a href="#h0-0-7" id="h0-0-7" class="i">+font-family: &quot;Latin-Mono-Italic&quot;; -</a><a href="#h0-0-8" id="h0-0-8" class="i">+src: url(&#39;fonts/lmmono10-italic.otf&#39;), -</a><a href="#h0-0-9" id="h0-0-9" class="i">+url(&#39;fonts/lmmono10-italic.otf&#39;); /* IE */ -</a><a href="#h0-0-10" id="h0-0-10" class="i">+} -</a><a href="#h0-0-11" id="h0-0-11" class="i">+ -</a><a href="#h0-0-12" id="h0-0-12" class="i">+@font-face{ -</a><a href="#h0-0-13" id="h0-0-13" class="i">+font-family: &quot;Roberta&quot;; -</a><a href="#h0-0-14" id="h0-0-14" class="i">+src: url(&#39;fonts/roberta.ttf&#39;), -</a><a href="#h0-0-15" id="h0-0-15" class="i">+url(&#39;fonts/roberta.ttf&#39;); /* IE */ -</a><a href="#h0-0-16" id="h0-0-16" class="i">+} -</a><a href="#h0-0-17" id="h0-0-17" class="i">+ -</a><a href="#h0-0-18" id="h0-0-18" class="i">+/*use line-height*/ -</a><a href="#h0-0-19" id="h0-0-19" class="i">+.font{ -</a><a href="#h0-0-20" id="h0-0-20" class="i">+ line-height: 1px; -</a><a href="#h0-0-21" id="h0-0-21" class="i">+ letter-spacing: 1px; -</a><a href="#h0-0-22" id="h0-0-22" class="i">+} -</a><a href="#h0-0-23" id="h0-0-23" class="i">+ -</a><a href="#h0-0-24" id="h0-0-24" class="i">+@viewport -</a><a href="#h0-0-25" id="h0-0-25" class="i">+{ -</a><a href="#h0-0-26" id="h0-0-26" class="i">+ width: device-width ; -</a><a href="#h0-0-27" id="h0-0-27" class="i">+ zoom: 1.0 ; -</a><a href="#h0-0-28" id="h0-0-28" class="i">+} -</a><a href="#h0-0-29" id="h0-0-29" class="i">+ -</a><a href="#h0-0-30" id="h0-0-30" class="i">+html { -</a><a href="#h0-0-31" id="h0-0-31" class="i">+ scroll-behavior: smooth; -</a><a href="#h0-0-32" id="h0-0-32" class="i">+} -</a><a href="#h0-0-33" id="h0-0-33" class="i">+ -</a><a href="#h0-0-34" id="h0-0-34" class="i">+body -</a><a href="#h0-0-35" id="h0-0-35" class="i">+{ -</a><a href="#h0-0-36" id="h0-0-36" class="i">+ margin: 20px auto; -</a><a href="#h0-0-37" id="h0-0-37" class="i">+ font-size: 16px; -</a><a href="#h0-0-38" id="h0-0-38" class="i">+ width: 100%; -</a><a href="#h0-0-39" id="h0-0-39" class="i">+ text-align: center; -</a><a href="#h0-0-40" id="h0-0-40" class="i">+ background-color:#000; -</a><a href="#h0-0-41" id="h0-0-41" class="i">+ color: #f5f5f5; -</a><a href="#h0-0-42" id="h0-0-42" class="i">+ font-family: &quot;Latin-Mono-Regular&quot;; -</a><a href="#h0-0-43" id="h0-0-43" class="i">+} -</a><a href="#h0-0-44" id="h0-0-44" class="i">+ -</a><a href="#h0-0-45" id="h0-0-45" class="i">+p{ -</a><a href="#h0-0-46" id="h0-0-46" class="i">+ margin:1px 0; -</a><a href="#h0-0-47" id="h0-0-47" class="i">+} -</a><a href="#h0-0-48" id="h0-0-48" class="i">+ -</a><a href="#h0-0-49" id="h0-0-49" class="i">+h1{ -</a><a href="#h0-0-50" id="h0-0-50" class="i">+ margin:1px 0; -</a><a href="#h0-0-51" id="h0-0-51" class="i">+ font-size: 60px; -</a><a href="#h0-0-52" id="h0-0-52" class="i">+ font-family: &quot;Latin-Mono-Regular&quot;; -</a><a href="#h0-0-53" id="h0-0-53" class="i">+ font-style: none; -</a><a href="#h0-0-54" id="h0-0-54" class="i">+ line-height: 42px; -</a><a href="#h0-0-55" id="h0-0-55" class="i">+ font-margin: 0px; -</a><a href="#h0-0-56" id="h0-0-56" class="i">+} -</a><a href="#h0-0-57" id="h0-0-57" class="i">+ -</a><a href="#h0-0-58" id="h0-0-58" class="i">+h2{ -</a><a href="#h0-0-59" id="h0-0-59" class="i">+ margin:1px 0; -</a><a href="#h0-0-60" id="h0-0-60" class="i">+ color:#FCD612; -</a><a href="#h0-0-61" id="h0-0-61" class="i">+ font-size: 30px; -</a><a href="#h0-0-62" id="h0-0-62" class="i">+ font-family: &quot;Latin-Mono-Regular&quot;; -</a><a href="#h0-0-63" id="h0-0-63" class="i">+ line-height: 30px; -</a><a href="#h0-0-64" id="h0-0-64" class="i">+ font-margin: 0px; -</a><a href="#h0-0-65" id="h0-0-65" class="i">+} -</a><a href="#h0-0-66" id="h0-0-66" class="i">+h3{ -</a><a href="#h0-0-67" id="h0-0-67" class="i">+ margin:1px 0; -</a><a href="#h0-0-68" id="h0-0-68" class="i">+ font-size: 30px; -</a><a href="#h0-0-69" id="h0-0-69" class="i">+ font-family: &quot;Latin-Mono-Regular&quot;; -</a><a href="#h0-0-70" id="h0-0-70" class="i">+ font-style: none; -</a><a href="#h0-0-71" id="h0-0-71" class="i">+} -</a><a href="#h0-0-72" id="h0-0-72" class="i">+h4{ -</a><a href="#h0-0-73" id="h0-0-73" class="i">+ margin:1px 0; -</a><a href="#h0-0-74" id="h0-0-74" class="i">+ font-size: 20px; -</a><a href="#h0-0-75" id="h0-0-75" class="i">+ font-family: &quot;Latin-Mono-Italic&quot;; -</a><a href="#h0-0-76" id="h0-0-76" class="i">+ font-style: none; -</a><a href="#h0-0-77" id="h0-0-77" class="i">+} -</a><a href="#h0-0-78" id="h0-0-78" class="i">+ -</a><a href="#h0-0-79" id="h0-0-79" class="i">+a{ -</a><a href="#h0-0-80" id="h0-0-80" class="i">+ color:#FCD612; -</a><a href="#h0-0-81" id="h0-0-81" class="i">+} -</a><a href="#h0-0-82" id="h0-0-82" class="i">+ -</a><a href="#h0-0-83" id="h0-0-83" class="i">+#logocontainer -</a><a href="#h0-0-84" id="h0-0-84" class="i">+{ -</a><a href="#h0-0-85" id="h0-0-85" class="i">+ margin: 0px auto; -</a><a href="#h0-0-86" id="h0-0-86" class="i">+ width: 100%; -</a><a href="#h0-0-87" id="h0-0-87" class="i">+ height: 100%; -</a><a href="#h0-0-88" id="h0-0-88" class="i">+ text-align: center; -</a><a href="#h0-0-89" id="h0-0-89" class="i">+ vertical-align: middle; -</a><a href="#h0-0-90" id="h0-0-90" class="i">+} -</a><a href="#h0-0-91" id="h0-0-91" class="i">+ -</a><a href="#h0-0-92" id="h0-0-92" class="i">+#logo -</a><a href="#h0-0-93" id="h0-0-93" class="i">+{ -</a><a href="#h0-0-94" id="h0-0-94" class="i">+ margin: 0px auto; -</a><a href="#h0-0-95" id="h0-0-95" class="i">+ font-weight: normal; -</a><a href="#h0-0-96" id="h0-0-96" class="i">+ width: 90%; -</a><a href="#h0-0-97" id="h0-0-97" class="i">+} -</a><a href="#h0-0-98" id="h0-0-98" class="i">+ -</a><a href="#h0-0-99" id="h0-0-99" class="i">+#logo2 -</a><a href="#h0-0-100" id="h0-0-100" class="i">+{ -</a><a href="#h0-0-101" id="h0-0-101" class="i">+ margin: 0px auto; -</a><a href="#h0-0-102" id="h0-0-102" class="i">+ width: 200px; -</a><a href="#h0-0-103" id="h0-0-103" class="i">+} -</a><a href="#h0-0-104" id="h0-0-104" class="i">+ -</a><a href="#h0-0-105" id="h0-0-105" class="i">+ -</a><a href="#h0-0-106" id="h0-0-106" class="i">+#container -</a><a href="#h0-0-107" id="h0-0-107" class="i">+{ -</a><a href="#h0-0-108" id="h0-0-108" class="i">+ margin: 0px auto; -</a><a href="#h0-0-109" id="h0-0-109" class="i">+ width: 100%; -</a><a href="#h0-0-110" id="h0-0-110" class="i">+ text-align: center; -</a><a href="#h0-0-111" id="h0-0-111" class="i">+ vertical-align: middle; -</a><a href="#h0-0-112" id="h0-0-112" class="i">+} -</a><a href="#h0-0-113" id="h0-0-113" class="i">+ -</a><a href="#h0-0-114" id="h0-0-114" class="i">+#bag -</a><a href="#h0-0-115" id="h0-0-115" class="i">+{ -</a><a href="#h0-0-116" id="h0-0-116" class="i">+ margin: 0px auto; -</a><a href="#h0-0-117" id="h0-0-117" class="i">+ position:fixed; -</a><a href="#h0-0-118" id="h0-0-118" class="i">+ bottom:0; -</a><a href="#h0-0-119" id="h0-0-119" class="i">+ width:100%; -</a><a href="#h0-0-120" id="h0-0-120" class="i">+ background:#800080; -</a><a href="#h0-0-121" id="h0-0-121" class="i">+} -</a><a href="#h0-0-122" id="h0-0-122" class="i">+ -</a><a href="#h0-0-123" id="h0-0-123" class="i">+#insidebag -</a><a href="#h0-0-124" id="h0-0-124" class="i">+{ -</a><a href="#h0-0-125" id="h0-0-125" class="i">+ margin: 10px auto; -</a><a href="#h0-0-126" id="h0-0-126" class="i">+ font-size: 16px; -</a><a href="#h0-0-127" id="h0-0-127" class="i">+ width:100%; -</a><a href="#h0-0-128" id="h0-0-128" class="i">+} -</a><a href="#h0-0-129" id="h0-0-129" class="i">+ -</a><a href="#h0-0-130" id="h0-0-130" class="i">+table, tbody, tr, td -</a><a href="#h0-0-131" id="h0-0-131" class="i">+{ -</a><a href="#h0-0-132" id="h0-0-132" class="i">+ width: 100%; -</a><a href="#h0-0-133" id="h0-0-133" class="i">+} -</a><a href="#h0-0-134" id="h0-0-134" class="i">+ -</a><a href="#h0-0-135" id="h0-0-135" class="i">+input, select -</a><a href="#h0-0-136" id="h0-0-136" class="i">+{ -</a><a href="#h0-0-137" id="h0-0-137" class="i">+ padding: 4px; -</a><a href="#h0-0-138" id="h0-0-138" class="i">+ color: #ff0000; -</a><a href="#h0-0-139" id="h0-0-139" class="i">+ background-color: #111; -</a><a href="#h0-0-140" id="h0-0-140" class="i">+ font-size: 18px; -</a><a href="#h0-0-141" id="h0-0-141" class="i">+ border: 0px; -</a><a href="#h0-0-142" id="h0-0-142" class="i">+ width: 100%; -</a><a href="#h0-0-143" id="h0-0-143" class="i">+} -</a><a href="#h0-0-144" id="h0-0-144" class="i">+ -</a><a href="#h0-0-145" id="h0-0-145" class="i">+textarea -</a><a href="#h0-0-146" id="h0-0-146" class="i">+{ -</a><a href="#h0-0-147" id="h0-0-147" class="i">+ padding: 4px; -</a><a href="#h0-0-148" id="h0-0-148" class="i">+ color: #ff0000; -</a><a href="#h0-0-149" id="h0-0-149" class="i">+ background-color: #111; -</a><a href="#h0-0-150" id="h0-0-150" class="i">+ font-size: 18px; -</a><a href="#h0-0-151" id="h0-0-151" class="i">+ border: 0px; -</a><a href="#h0-0-152" id="h0-0-152" class="i">+ width: 100%; -</a><a href="#h0-0-153" id="h0-0-153" class="i">+ height: 20px; -</a><a href="#h0-0-154" id="h0-0-154" class="i">+} -</a><a href="#h0-0-155" id="h0-0-155" class="i">+ -</a><a href="#h0-0-156" id="h0-0-156" class="i">+button -</a><a href="#h0-0-157" id="h0-0-157" class="i">+{ -</a><a href="#h0-0-158" id="h0-0-158" class="i">+ margin:10px; -</a><a href="#h0-0-159" id="h0-0-159" class="i">+ padding: 4px; -</a><a href="#h0-0-160" id="h0-0-160" class="i">+ font-size: 18px; -</a><a href="#h0-0-161" id="h0-0-161" class="i">+ color: #ff0000; -</a><a href="#h0-0-162" id="h0-0-162" class="i">+ background-color: #222; -</a><a href="#h0-0-163" id="h0-0-163" class="i">+ width: 90%; -</a><a href="#h0-0-164" id="h0-0-164" class="i">+} -</a><a href="#h0-0-165" id="h0-0-165" class="i">+ -</a><a href="#h0-0-166" id="h0-0-166" class="i">+.logo -</a><a href="#h0-0-167" id="h0-0-167" class="i">+{ -</a><a href="#h0-0-168" id="h0-0-168" class="i">+ max-width: 345px; -</a><a href="#h0-0-169" id="h0-0-169" class="i">+ width: 90%; -</a><a href="#h0-0-170" id="h0-0-170" class="i">+ height:auto; -</a><a href="#h0-0-171" id="h0-0-171" class="i">+} -</a><a href="#h0-0-172" id="h0-0-172" class="i">+ -</a><a href="#h0-0-173" id="h0-0-173" class="i">+#payid -</a><a href="#h0-0-174" id="h0-0-174" class="i">+{ -</a><a href="#h0-0-175" id="h0-0-175" class="i">+ margin: 0px auto; -</a><a href="#h0-0-176" id="h0-0-176" class="i">+ color: #888; -</a><a href="#h0-0-177" id="h0-0-177" class="i">+ text-decoration: normal; -</a><a href="#h0-0-178" id="h0-0-178" class="i">+ background-color: #111; -</a><a href="#h0-0-179" id="h0-0-179" class="i">+ border: 0px; -</a><a href="#h0-0-180" id="h0-0-180" class="i">+ width: 20vw; -</a><a href="#h0-0-181" id="h0-0-181" class="i">+ height: 2vw; -</a><a href="#h0-0-182" id="h0-0-182" class="i">+ font-size: 1.5vw; -</a><a href="#h0-0-183" id="h0-0-183" class="i">+ text-align: center; -</a><a href="#h0-0-184" id="h0-0-184" class="i">+ white-space: pre-wrap; /* CSS3 */ -</a><a href="#h0-0-185" id="h0-0-185" class="i">+ white-space: -moz-pre-wrap; /* Firefox */ -</a><a href="#h0-0-186" id="h0-0-186" class="i">+ white-space: -pre-wrap; /* Opera &lt;7 */ -</a><a href="#h0-0-187" id="h0-0-187" class="i">+ white-space: -o-pre-wrap; /* Opera 7 */ -</a><a href="#h0-0-188" id="h0-0-188" class="i">+ word-wrap: break-word; /* IE */ -</a><a href="#h0-0-189" id="h0-0-189" class="i">+} -</a><a href="#h0-0-190" id="h0-0-190" class="i">+ -</a><a href="#h0-0-191" id="h0-0-191" class="i">+#payreq -</a><a href="#h0-0-192" id="h0-0-192" class="i">+{ -</a><a href="#h0-0-193" id="h0-0-193" class="i">+ margin: 0px auto; -</a><a href="#h0-0-194" id="h0-0-194" class="i">+ color: #888; -</a><a href="#h0-0-195" id="h0-0-195" class="i">+ background-color: #111; -</a><a href="#h0-0-196" id="h0-0-196" class="i">+ border: 0px; -</a><a href="#h0-0-197" id="h0-0-197" class="i">+ width: 45vw; -</a><a href="#h0-0-198" id="h0-0-198" class="i">+ height: 4vw; -</a><a href="#h0-0-199" id="h0-0-199" class="i">+ font-size: 1.5vw; -</a><a href="#h0-0-200" id="h0-0-200" class="i">+ text-align: center; -</a><a href="#h0-0-201" id="h0-0-201" class="i">+ white-space: pre-wrap; /* CSS3 */ -</a><a href="#h0-0-202" id="h0-0-202" class="i">+ white-space: -moz-pre-wrap; /* Firefox */ -</a><a href="#h0-0-203" id="h0-0-203" class="i">+ white-space: -pre-wrap; /* Opera &lt;7 */ -</a><a href="#h0-0-204" id="h0-0-204" class="i">+ white-space: -o-pre-wrap; /* Opera 7 */ -</a><a href="#h0-0-205" id="h0-0-205" class="i">+ word-wrap: break-word; /* IE */ -</a><a href="#h0-0-206" id="h0-0-206" class="i">+} -</a><a href="#h0-0-207" id="h0-0-207" class="i">+ -</a><a href="#h0-0-208" id="h0-0-208" class="i">+#copybutton -</a><a href="#h0-0-209" id="h0-0-209" class="i">+{ -</a><a href="#h0-0-210" id="h0-0-210" class="i">+ color: #333; -</a><a href="#h0-0-211" id="h0-0-211" class="i">+ text-decoration: bold; -</a><a href="#h0-0-212" id="h0-0-212" class="i">+ background-color: #111; -</a><a href="#h0-0-213" id="h0-0-213" class="i">+ border: 0px; -</a><a href="#h0-0-214" id="h0-0-214" class="i">+ padding: 5px; -</a><a href="#h0-0-215" id="h0-0-215" class="i">+ width: auto; -</a><a href="#h0-0-216" id="h0-0-216" class="i">+} -</a><a href="#h0-0-217" id="h0-0-217" class="i">+ -</a><a href="#h0-0-218" id="h0-0-218" class="i">+#backbutton -</a><a href="#h0-0-219" id="h0-0-219" class="i">+{ -</a><a href="#h0-0-220" id="h0-0-220" class="i">+ color: #333; -</a><a href="#h0-0-221" id="h0-0-221" class="i">+ text-decoration: bold; -</a><a href="#h0-0-222" id="h0-0-222" class="i">+ background-color: #111; -</a><a href="#h0-0-223" id="h0-0-223" class="i">+ border: 0px; -</a><a href="#h0-0-224" id="h0-0-224" class="i">+ padding: 5px; -</a><a href="#h0-0-225" id="h0-0-225" class="i">+ width: auto; -</a><a href="#h0-0-226" id="h0-0-226" class="i">+} -</a><a href="#h0-0-227" id="h0-0-227" class="i">+ -</a></pre> -</div> -</body> -</html> diff --git a/public_html/static/git/commit/f88862ebd308659e5ac56b166f8534cfe486f3ae.html b/public_html/static/git/commit/f88862ebd308659e5ac56b166f8534cfe486f3ae.html @@ -1,552 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>yes - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../style.css" /> -</head> -<body> -<table><tr><td><a href="../../"><img src="../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../log.html">Log</a> | <a href="../files.html">Files</a> | <a href="../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<pre><b>commit</b> <a href="../commit/f88862ebd308659e5ac56b166f8534cfe486f3ae.html">f88862ebd308659e5ac56b166f8534cfe486f3ae</a> -<b>parent</b> <a href="../commit/f51d79da0711ee549da7c615cc1ad62f6ffc7f88.html">f51d79da0711ee549da7c615cc1ad62f6ffc7f88</a> -<b>Author:</b> rob &lt;<a href="mailto:rob@tarina.org">rob@tarina.org</a>&gt; -<b>Date:</b> Sat, 16 Oct 2021 08:33:40 +0300 - -yes - -<b>Diffstat:</b> -<table><tr><td class="A">A</td><td><a href="#h0">public_html/static/fonts/Now-Black.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h1">public_html/static/fonts/Now-Bold.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h2">public_html/static/fonts/Now-Light.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h3">public_html/static/fonts/Now-Medium.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h4">public_html/static/fonts/Now-Regular.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h5">public_html/static/fonts/Now-Thin.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h6">public_html/static/fonts/OFL-FAQ.txt</a></td><td> | </td><td class="num">429</td><td><span class="i">+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h7">public_html/static/fonts/Terminus-Bold.ttf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h8">public_html/static/fonts/Terminus-Italic.ttf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h9">public_html/static/fonts/Terminus.ttf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h10">public_html/static/fonts/__MACOSX/._Now-Black.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h11">public_html/static/fonts/__MACOSX/._Now-Bold.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h12">public_html/static/fonts/__MACOSX/._Now-Light.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h13">public_html/static/fonts/__MACOSX/._Now-Medium.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h14">public_html/static/fonts/__MACOSX/._Now-Regular.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h15">public_html/static/fonts/__MACOSX/._Now-Thin.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h16">public_html/static/fonts/__MACOSX/._OFL-FAQ.txt</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h17">public_html/static/fonts/fonts/Terminus-Bold.ttf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h18">public_html/static/fonts/fonts/Terminus-Italic.ttf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h19">public_html/static/fonts/fonts/Terminus.ttf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h20">public_html/static/fonts/fonts/lmmono10-italic.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h21">public_html/static/fonts/fonts/lmmono10-regular.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h22">public_html/static/fonts/fonts/roberta.ttf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h23">public_html/static/fonts/lmmono10-italic.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h24">public_html/static/fonts/lmmono10-regular.otf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h25">public_html/static/fonts/now.zip</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h26">public_html/static/fonts/roberta.ttf</a></td><td> | </td><td class="num">0</td><td><span class="i"></span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h27">public_html/static/scrollcookie.js</a></td><td> | </td><td class="num">9</td><td><span class="i">+++++++++</span><span class="d"></span></td></tr> -</table></pre><pre>28 files changed, 438 insertions(+), 0 deletions(-) -<hr/><b>diff --git a/<a id="h0" href="../file/public_html/static/fonts/Now-Black.otf.html">public_html/static/fonts/Now-Black.otf</a> b/<a href="../file/public_html/static/fonts/Now-Black.otf.html">public_html/static/fonts/Now-Black.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h1" href="../file/public_html/static/fonts/Now-Bold.otf.html">public_html/static/fonts/Now-Bold.otf</a> b/<a href="../file/public_html/static/fonts/Now-Bold.otf.html">public_html/static/fonts/Now-Bold.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h2" href="../file/public_html/static/fonts/Now-Light.otf.html">public_html/static/fonts/Now-Light.otf</a> b/<a href="../file/public_html/static/fonts/Now-Light.otf.html">public_html/static/fonts/Now-Light.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h3" href="../file/public_html/static/fonts/Now-Medium.otf.html">public_html/static/fonts/Now-Medium.otf</a> b/<a href="../file/public_html/static/fonts/Now-Medium.otf.html">public_html/static/fonts/Now-Medium.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h4" href="../file/public_html/static/fonts/Now-Regular.otf.html">public_html/static/fonts/Now-Regular.otf</a> b/<a href="../file/public_html/static/fonts/Now-Regular.otf.html">public_html/static/fonts/Now-Regular.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h5" href="../file/public_html/static/fonts/Now-Thin.otf.html">public_html/static/fonts/Now-Thin.otf</a> b/<a href="../file/public_html/static/fonts/Now-Thin.otf.html">public_html/static/fonts/Now-Thin.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h6" href="../file/public_html/static/fonts/OFL-FAQ.txt.html">public_html/static/fonts/OFL-FAQ.txt</a> b/<a href="../file/public_html/static/fonts/OFL-FAQ.txt.html">public_html/static/fonts/OFL-FAQ.txt</a></b> -<a href="#h6-0" id="h6-0" class="h">@@ -0,0 +1,429 @@ -</a><a href="#h6-0-0" id="h6-0-0" class="i">+Copyright (c) 2015, Alfredo Marco Pradil (&lt;http://behance.net/pradil | ammpradil@gmail.com&gt;), with Reserved Font Name Now. -</a><a href="#h6-0-1" id="h6-0-1" class="i">+ -</a><a href="#h6-0-2" id="h6-0-2" class="i">+OFL FAQ - Frequently Asked Questions about the SIL Open Font License (OFL) -</a><a href="#h6-0-3" id="h6-0-3" class="i">+Version 1.1-update4 - Sept 2014 -</a><a href="#h6-0-4" id="h6-0-4" class="i">+(See http://scripts.sil.org/OFL for updates) -</a><a href="#h6-0-5" id="h6-0-5" class="i">+ -</a><a href="#h6-0-6" id="h6-0-6" class="i">+ -</a><a href="#h6-0-7" id="h6-0-7" class="i">+CONTENTS OF THIS FAQ -</a><a href="#h6-0-8" id="h6-0-8" class="i">+1 USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL -</a><a href="#h6-0-9" id="h6-0-9" class="i">+2 USING OFL FONTS FOR WEB PAGES AND ONLINE WEB FONT SERVICES -</a><a href="#h6-0-10" id="h6-0-10" class="i">+3 MODIFYING OFL-LICENSED FONTS -</a><a href="#h6-0-11" id="h6-0-11" class="i">+4 LICENSING YOUR ORIGINAL FONTS UNDER THE OFL -</a><a href="#h6-0-12" id="h6-0-12" class="i">+5 CHOOSING RESERVED FONT NAMES -</a><a href="#h6-0-13" id="h6-0-13" class="i">+6 ABOUT THE FONTLOG -</a><a href="#h6-0-14" id="h6-0-14" class="i">+7 MAKING CONTRIBUTIONS TO OFL PROJECTS -</a><a href="#h6-0-15" id="h6-0-15" class="i">+8 ABOUT THE LICENSE ITSELF -</a><a href="#h6-0-16" id="h6-0-16" class="i">+9 ABOUT SIL INTERNATIONAL -</a><a href="#h6-0-17" id="h6-0-17" class="i">+APPENDIX A - FONTLOG EXAMPLE -</a><a href="#h6-0-18" id="h6-0-18" class="i">+ -</a><a href="#h6-0-19" id="h6-0-19" class="i">+1 USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL -</a><a href="#h6-0-20" id="h6-0-20" class="i">+ -</a><a href="#h6-0-21" id="h6-0-21" class="i">+1.1 Can I use the fonts for a book or other print publication, to create logos or other graphics or even to manufacture objects based on their outlines? -</a><a href="#h6-0-22" id="h6-0-22" class="i">+Yes. You are very welcome to do so. Authors of fonts released under the OFL allow you to use their font software as such for any kind of design work. No additional license or permission is required, unlike with some other licenses. Some examples of these uses are: logos, posters, business cards, stationery, video titling, signage, t-shirts, personalised fabric, 3D-printed/laser-cut shapes, sculptures, rubber stamps, cookie cutters and lead type. -</a><a href="#h6-0-23" id="h6-0-23" class="i">+ -</a><a href="#h6-0-24" id="h6-0-24" class="i">+1.1.1 Does that restrict the license or distribution of that artwork? -</a><a href="#h6-0-25" id="h6-0-25" class="i">+No. You remain the author and copyright holder of that newly derived graphic or object. You are simply using an open font in the design process. It is only when you redistribute, bundle or modify the font itself that other conditions of the license have to be respected (see below for more details). -</a><a href="#h6-0-26" id="h6-0-26" class="i">+ -</a><a href="#h6-0-27" id="h6-0-27" class="i">+1.1.2 Is any kind of acknowledgement required? -</a><a href="#h6-0-28" id="h6-0-28" class="i">+No. Font authors may appreciate being mentioned in your artwork&#39;s acknowledgements alongside the name of the font, possibly with a link to their website, but that is not required. -</a><a href="#h6-0-29" id="h6-0-29" class="i">+ -</a><a href="#h6-0-30" id="h6-0-30" class="i">+1.2 Can the fonts be included with Free/Libre and Open Source Software collections such as GNU/Linux and BSD distributions and repositories? -</a><a href="#h6-0-31" id="h6-0-31" class="i">+Yes! Fonts licensed under the OFL can be freely included alongside other software under FLOSS (Free/Libre and Open Source Software) licenses. Since fonts are typically aggregated with, not merged into, existing software, there is little need to be concerned about incompatibility with existing software licenses. You may also repackage the fonts and the accompanying components in a .rpm or .deb package (or other similar package formats or installers) and include them in distribution CD/DVDs and online repositories. (Also see section 5.9 about rebuilding from source.) -</a><a href="#h6-0-32" id="h6-0-32" class="i">+ -</a><a href="#h6-0-33" id="h6-0-33" class="i">+1.3 I want to distribute the fonts with my program. Does this mean my program also has to be Free/Libre and Open Source Software? -</a><a href="#h6-0-34" id="h6-0-34" class="i">+No. Only the portions based on the Font Software are required to be released under the OFL. The intent of the license is to allow aggregation or bundling with software under restricted licensing as well. -</a><a href="#h6-0-35" id="h6-0-35" class="i">+ -</a><a href="#h6-0-36" id="h6-0-36" class="i">+1.4 Can I sell a software package that includes these fonts? -</a><a href="#h6-0-37" id="h6-0-37" class="i">+Yes, you can do this with both the Original Version and a Modified Version of the fonts. Examples of bundling made possible by the OFL would include: word processors, design and publishing applications, training and educational software, games and entertainment software, mobile device applications, etc. -</a><a href="#h6-0-38" id="h6-0-38" class="i">+ -</a><a href="#h6-0-39" id="h6-0-39" class="i">+1.5 Can I include the fonts on a CD of freeware or commercial fonts? -</a><a href="#h6-0-40" id="h6-0-40" class="i">+Yes, as long some other font or software is also on the disk, so the OFL font is not sold by itself. -</a><a href="#h6-0-41" id="h6-0-41" class="i">+ -</a><a href="#h6-0-42" id="h6-0-42" class="i">+1.6 Why won&#39;t the OFL let me sell the fonts alone? -</a><a href="#h6-0-43" id="h6-0-43" class="i">+The intent is to keep people from making money by simply redistributing the fonts. The only people who ought to profit directly from the fonts should be the original authors, and those authors have kindly given up potential direct income to distribute their fonts under the OFL. Please honour and respect their contribution! -</a><a href="#h6-0-44" id="h6-0-44" class="i">+ -</a><a href="#h6-0-45" id="h6-0-45" class="i">+1.7 What about sharing OFL fonts with friends on a CD, DVD or USB stick? -</a><a href="#h6-0-46" id="h6-0-46" class="i">+You are very welcome to share open fonts with friends, family and colleagues through removable media. Just remember to include the full font package, including any copyright notices and licensing information as available in OFL.txt. In the case where you sell the font, it has to come bundled with software. -</a><a href="#h6-0-47" id="h6-0-47" class="i">+ -</a><a href="#h6-0-48" id="h6-0-48" class="i">+1.8 Can I host the fonts on a web site for others to use? -</a><a href="#h6-0-49" id="h6-0-49" class="i">+Yes, as long as you make the full font package available. In most cases it may be best to point users to the main site that distributes the Original Version so they always get the most recent stable and complete version. See also discussion of web fonts in Section 2. -</a><a href="#h6-0-50" id="h6-0-50" class="i">+ -</a><a href="#h6-0-51" id="h6-0-51" class="i">+1.9 Can I host the fonts on a server for use over our internal network? -</a><a href="#h6-0-52" id="h6-0-52" class="i">+Yes. If the fonts are transferred from the server to the client computer by means that allow them to be used even if the computer is no longer attached to the network, the full package (copyright notices, licensing information, etc.) should be included. -</a><a href="#h6-0-53" id="h6-0-53" class="i">+ -</a><a href="#h6-0-54" id="h6-0-54" class="i">+1.10 Does the full OFL license text always need to accompany the font? -</a><a href="#h6-0-55" id="h6-0-55" class="i">+The only situation in which an OFL font can be distributed without the text of the OFL (either in a separate file or in font metadata), is when a font is embedded in a document or bundled within a program. In the case of metadata included within a font, it is legally sufficient to include only a link to the text of the OFL on http://scripts.sil.org/OFL, but we strongly recommend against this. Most modern font formats include metadata fields that will accept the full OFL text, and full inclusion increases the likelihood that users will understand and properly apply the license. -</a><a href="#h6-0-56" id="h6-0-56" class="i">+ -</a><a href="#h6-0-57" id="h6-0-57" class="i">+1.11 What do you mean by &#39;embedding&#39;? How does that differ from other means of distribution? -</a><a href="#h6-0-58" id="h6-0-58" class="i">+By &#39;embedding&#39; we mean inclusion of the font in a document or file in a way that makes extraction (and redistribution) difficult or clearly discouraged. In many cases the names of embedded fonts might also not be obvious to those reading the document, the font data format might be altered, and only a subset of the font - only the glyphs required for the text - might be included. Any other means of delivering a font to another person is considered &#39;distribution&#39;, and needs to be accompanied by any copyright notices and licensing information available in OFL.txt. -</a><a href="#h6-0-59" id="h6-0-59" class="i">+ -</a><a href="#h6-0-60" id="h6-0-60" class="i">+1.12 So can I embed OFL fonts in my document? -</a><a href="#h6-0-61" id="h6-0-61" class="i">+Yes, either in full or a subset. The restrictions regarding font modification and redistribution do not apply, as the font is not intended for use outside the document. -</a><a href="#h6-0-62" id="h6-0-62" class="i">+ -</a><a href="#h6-0-63" id="h6-0-63" class="i">+1.13 Does embedding alter the license of the document itself? -</a><a href="#h6-0-64" id="h6-0-64" class="i">+No. Referencing or embedding an OFL font in any document does not change the license of the document itself. The requirement for fonts to remain under the OFL does not apply to any document created using the fonts and their derivatives. Similarly, creating any kind of graphic using a font under OFL does not make the resulting artwork subject to the OFL. -</a><a href="#h6-0-65" id="h6-0-65" class="i">+ -</a><a href="#h6-0-66" id="h6-0-66" class="i">+1.14 If OFL fonts are extracted from a document in which they are embedded (such as a PDF file), what can be done with them? Is this a risk to author(s)? -</a><a href="#h6-0-67" id="h6-0-67" class="i">+The few utilities that can extract fonts embedded in a PDF will typically output limited amounts of outlines - not a complete font. To create a working font from this method is much more difficult and time consuming than finding the source of the original OFL font. So there is little chance that an OFL font would be extracted and redistributed inappropriately through this method. Even so, copyright laws address any misrepresentation of authorship. All Font Software released under the OFL and marked as such by the author(s) is intended to remain under this license regardless of the distribution method, and cannot be redistributed under any other license. We strongly discourage any font extraction - we recommend directly using the font sources instead - but if you extract font outlines from a document, please be considerate: respect the work of the author(s) and the licensing model. -</a><a href="#h6-0-68" id="h6-0-68" class="i">+ -</a><a href="#h6-0-69" id="h6-0-69" class="i">+1.15 What about distributing fonts with a document? Within a compressed folder structure? Is it distribution, bundling or embedding? -</a><a href="#h6-0-70" id="h6-0-70" class="i">+Certain document formats may allow the inclusion of an unmodified font within their file structure which may consist of a compressed folder containing the various resources forming the document (such as pictures and thumbnails). Including fonts within such a structure is understood as being different from embedding but rather similar to bundling (or mere aggregation) which the license explicitly allows. In this case the font is conveyed unchanged whereas embedding a font usually transforms it from the original format. The OFL does not allow anyone to extract the font from such a structure to then redistribute it under another license. The explicit permission to redistribute and embed does not cancel the requirement for the Font Software to remain under the license chosen by its author(s). Even if the font travels inside the document as one of its assets, it should not lose its authorship information and licensing. -</a><a href="#h6-0-71" id="h6-0-71" class="i">+ -</a><a href="#h6-0-72" id="h6-0-72" class="i">+1.16 What about ebooks shipping with open fonts? -</a><a href="#h6-0-73" id="h6-0-73" class="i">+The requirements differ depending on whether the fonts are linked, embedded or distributed (bundled or aggregated). Some ebook formats use web technologies to do font linking via @font-face, others are designed for font embedding, some use fonts distributed with the document or reading software, and a few rely solely on the fonts already present on the target system. The license requirements depend on the type of inclusion as discussed in 1.15. -</a><a href="#h6-0-74" id="h6-0-74" class="i">+ -</a><a href="#h6-0-75" id="h6-0-75" class="i">+1.17 Can Font Software released under the OFL be subject to URL-based access restrictions methods or DRM (Digital Rights Management) mechanisms? -</a><a href="#h6-0-76" id="h6-0-76" class="i">+Yes, but these issues are out-of-scope for the OFL. The license itself neither encourages their use nor prohibits them since such mechanisms are not implemented in the components of the Font Software but through external software. Such restrictions are put in place for many different purposes corresponding to various usage scenarios. One common example is to limit potentially dangerous cross-site scripting attacks. However, in the spirit of libre/open fonts and unrestricted writing systems, we strongly encourage open sharing and reuse of OFL fonts, and the establishment of an environment where such restrictions are unnecessary. Note that whether you wish to use such mechanisms or you prefer not to, you must still abide by the rules set forth by the OFL when using fonts released by their authors under this license. Derivative fonts must be licensed under the OFL, even if they are part of a service for which you charge fees and/or for which access to source code is restricted. You may not sell the fonts on their own - they must be part of a larger software package, bundle or subscription plan. For example, even if the OFL font is distributed in a software package or via an online service using a DRM mechanism, the user would still have the right to extract that font, use, study, modify and redistribute it under the OFL. -</a><a href="#h6-0-77" id="h6-0-77" class="i">+ -</a><a href="#h6-0-78" id="h6-0-78" class="i">+1.18 I&#39;ve come across a font released under the OFL. How can I easily get more information about the Original Version? How can I know where it stands compared to the Original Version or other Modified Versions? -</a><a href="#h6-0-79" id="h6-0-79" class="i">+Consult the copyright statement(s) in the license for ways to contact the original authors. Consult the FONTLOG (see section 6 for more details and examples) for information on how the font differs from the Original Version, and get in touch with the various contributors via the information in the acknowledgement section. Please consider using the Original Versions of the fonts whenever possible. -</a><a href="#h6-0-80" id="h6-0-80" class="i">+ -</a><a href="#h6-0-81" id="h6-0-81" class="i">+1.19 What do you mean in condition 4 of the OFL&#39;s permissions and conditions? Can you provide examples of abusive promotion / endorsement / advertisement vs. normal acknowledgement? -</a><a href="#h6-0-82" id="h6-0-82" class="i">+The intent is that the goodwill and reputation of the author(s) should not be used in a way that makes it sound like the original author(s) endorse or approve of a specific Modified Version or software bundle. For example, it would not be right to advertise a word processor by naming the author(s) in a listing of software features, or to promote a Modified Version on a web site by saying &quot;designed by ...&quot;. However, it would be appropriate to acknowledge the author(s) if your software package has a list of people who deserve thanks. We realize that this can seem to be a grey area, but the standard used to judge an acknowledgement is that if the acknowledgement benefits the author(s) it is allowed, but if it primarily benefits other parties, or could reflect poorly on the author(s), then it is not. -</a><a href="#h6-0-83" id="h6-0-83" class="i">+ -</a><a href="#h6-0-84" id="h6-0-84" class="i">+1.20 I&#39;m writing a small app for mobile platforms, do I need to include the whole package? -</a><a href="#h6-0-85" id="h6-0-85" class="i">+If you bundle a font under the OFL with your mobile app you must comply with the terms of the license. At a minimum you must include the copyright statement, the license notice and the license text. A mention of this information in your About box or Changelog, with a link to where the font package is from, is good practice, and the extra space needed to carry these items is very small. You do not, however, need to include the full contents of the font package - only the fonts you use and the copyright and license that apply to them. For example, if you only use the regular weight in your app, you do not need to include the italic and bold versions. -</a><a href="#h6-0-86" id="h6-0-86" class="i">+ -</a><a href="#h6-0-87" id="h6-0-87" class="i">+1.21 What about including OFL fonts by default in my firmware or dedicated operating system? -</a><a href="#h6-0-88" id="h6-0-88" class="i">+Many such systems are restricted and turned into appliances so that users cannot study or modify them. Using open fonts to increase quality and language coverage is a great idea, but you need to be aware that if there is a way for users to extract fonts you cannot legally prevent them from doing that. The fonts themselves, including any changes you make to them, must be distributed under the OFL even if your firmware has a more restrictive license. If you do transform the fonts and change their formats when you include them in your firmware you must respect any names reserved by the font authors via the RFN mechanism and pick your own font name. Alternatively if you directly add a font under the OFL to the font folder of your firmware without modifying or optimizing it you are simply bundling the font like with any other software collection, and do not need to make any further changes. -</a><a href="#h6-0-89" id="h6-0-89" class="i">+ -</a><a href="#h6-0-90" id="h6-0-90" class="i">+1.22 Can I make and publish CMS themes or templates that use OFL fonts? Can I include the fonts themselves in the themes or templates? Can I sell the whole package? -</a><a href="#h6-0-91" id="h6-0-91" class="i">+Yes, you are very welcome to integrate open fonts into themes and templates for your preferred CMS and make them more widely available. Remember that you can only sell the fonts and your CMS add-on as part of a software bundle. (See 1.4 for details and examples about selling bundles). -</a><a href="#h6-0-92" id="h6-0-92" class="i">+ -</a><a href="#h6-0-93" id="h6-0-93" class="i">+1.23 Can OFL fonts be included in services that deliver fonts to the desktop from remote repositories? Even if they contain both OFL and non-OFL fonts? -</a><a href="#h6-0-94" id="h6-0-94" class="i">+Yes. Some foundries have set up services to deliver fonts to subscribers directly to desktops from their online repositories; similarly, plugins are available to preview and use fonts directly in your design tool or publishing suite. These services may mix open and restricted fonts in the same channel, however they should make a clear distinction between them to users. These services should also not hinder users (such as through DRM or obfuscation mechanisms) from extracting and using the OFL fonts in other environments, or continuing to use OFL fonts after subscription terms have ended, as those uses are specifically allowed by the OFL. -</a><a href="#h6-0-95" id="h6-0-95" class="i">+ -</a><a href="#h6-0-96" id="h6-0-96" class="i">+1.24 Can services that provide or distribute OFL fonts restrict my use of them? -</a><a href="#h6-0-97" id="h6-0-97" class="i">+No. The terms of use of such services cannot replace or restrict the terms of the OFL, as that would be the same as distributing the fonts under a different license, which is not allowed. You are still entitled to use, modify and redistribute them as the original authors have intended outside of the sole control of that particular distribution channel. Note, however, that the fonts provided by these services may differ from the Original Versions. -</a><a href="#h6-0-98" id="h6-0-98" class="i">+ -</a><a href="#h6-0-99" id="h6-0-99" class="i">+ -</a><a href="#h6-0-100" id="h6-0-100" class="i">+2 USING OFL FONTS FOR WEBPAGES AND ONLINE WEB FONT SERVICES -</a><a href="#h6-0-101" id="h6-0-101" class="i">+ -</a><a href="#h6-0-102" id="h6-0-102" class="i">+NOTE: This section often refers to a separate paper on &#39;Web Fonts &amp; RFNs&#39;. This is available at http://scripts.sil.org/OFL_web_fonts_and_RFNs -</a><a href="#h6-0-103" id="h6-0-103" class="i">+ -</a><a href="#h6-0-104" id="h6-0-104" class="i">+2.1 Can I make webpages using these fonts? -</a><a href="#h6-0-105" id="h6-0-105" class="i">+Yes! Go ahead! Using CSS (Cascading Style Sheets) is recommended. Your three best options are: -</a><a href="#h6-0-106" id="h6-0-106" class="i">+- referring directly in your stylesheet to open fonts which may be available on the user&#39;s system -</a><a href="#h6-0-107" id="h6-0-107" class="i">+- providing links to download the full package of the font - either from your own website or from elsewhere - so users can install it themselves -</a><a href="#h6-0-108" id="h6-0-108" class="i">+- using @font-face to distribute the font directly to browsers. This is recommended and explicitly allowed by the licensing model because it is distribution. The font file itself is distributed with other components of the webpage. It is not embedded in the webpage but referenced through a web address which will cause the browser to retrieve and use the corresponding font to render the webpage (see 1.11 and 1.15 for details related to embedding fonts into documents). As you take advantage of the @font-face cross-platform standard, be aware that web fonts are often tuned for a web environment and not intended for installation and use outside a browser. The reasons in favour of using web fonts are to allow design of dynamic text elements instead of static graphics, to make it easier for content to be localized and translated, indexed and searched, and all this with cross-platform open standards without depending on restricted extensions or plugins. You should check the CSS cascade (the order in which fonts are being called or delivered to your users) when testing. -</a><a href="#h6-0-109" id="h6-0-109" class="i">+ -</a><a href="#h6-0-110" id="h6-0-110" class="i">+2.2 Can I make and use WOFF (Web Open Font Format) versions of OFL fonts? -</a><a href="#h6-0-111" id="h6-0-111" class="i">+Yes, but you need to be careful. A change in font format normally is considered modification, and Reserved Font Names (RFNs) cannot be used. Because of the design of the WOFF format, however, it is possible to create a WOFF version that is not considered modification, and so would not require a name change. You are allowed to create, use and distribute a WOFF version of an OFL font without changing the font name, but only if: -</a><a href="#h6-0-112" id="h6-0-112" class="i">+ -</a><a href="#h6-0-113" id="h6-0-113" class="i">+- the original font data remains unchanged except for WOFF compression, and -</a><a href="#h6-0-114" id="h6-0-114" class="i">+- WOFF-specific metadata is either omitted altogether or present and includes, unaltered, the contents of all equivalent metadata in the original font. -</a><a href="#h6-0-115" id="h6-0-115" class="i">+ -</a><a href="#h6-0-116" id="h6-0-116" class="i">+If the original font data or metadata is changed, or the WOFF-specific metadata is incomplete, the font must be considered a Modified Version, the OFL restrictions would apply and the name of the font must be changed: any RFNs cannot be used and copyright notices and licensing information must be included and cannot be deleted or modified. You must come up with a unique name - we recommend one corresponding to your domain or your particular web application. Be aware that only the original author(s) can use RFNs. This is to prevent collisions between a derivative tuned to your audience and the original upstream version and so to reduce confusion. -</a><a href="#h6-0-117" id="h6-0-117" class="i">+ -</a><a href="#h6-0-118" id="h6-0-118" class="i">+Please note that most WOFF conversion tools and online services do not meet the two requirements listed above, and so their output must be considered a Modified Version. So be very careful and check to be sure that the tool or service you&#39;re using is compressing unchanged data and completely and accurately reflecting the original font metadata. -</a><a href="#h6-0-119" id="h6-0-119" class="i">+ -</a><a href="#h6-0-120" id="h6-0-120" class="i">+2.3 What about other web font formats such as EOT/EOTLite/CWT/etc.? -</a><a href="#h6-0-121" id="h6-0-121" class="i">+In most cases these formats alter the original font data more than WOFF, and do not completely support appropriate metadata, so their use must be considered modification and RFNs may not be used. However, there may be certain formats or usage scenarios that may allow the use of RFNs. See http://scripts.sil.org/OFL_web_fonts_and_RFNs -</a><a href="#h6-0-122" id="h6-0-122" class="i">+ -</a><a href="#h6-0-123" id="h6-0-123" class="i">+2.4 Can I make OFL fonts available through web font online services? -</a><a href="#h6-0-124" id="h6-0-124" class="i">+Yes, you are welcome to include OFL fonts in online web font services as long as you properly meet all the conditions of the license. The origin and open status of the font should be clear among the other fonts you are hosting. Authorship, copyright notices and license information must be sufficiently visible to your users or subscribers so they know where the font comes from and the rights granted by the author(s). Make sure the font file contains the needed copyright notice(s) and licensing information in its metadata. Please double-check the accuracy of every field to prevent contradictory information. Other font formats, including EOT/EOTLite/CWT and superior alternatives like WOFF, already provide fields for this information. Remember that if you modify the font within your library or convert it to another format for any reason the OFL restrictions apply and you need to change the names accordingly. Please respect the author&#39;s wishes as expressed in the OFL and do not misrepresent original designers and their work. Don&#39;t lump quality open fonts together with dubious freeware or public domain fonts. Consider how you can best work with the original designers and foundries, support their efforts and generate goodwill that will benefit your service. (See 1.17 for details related to URL-based access restrictions methods or DRM mechanisms). -</a><a href="#h6-0-125" id="h6-0-125" class="i">+ -</a><a href="#h6-0-126" id="h6-0-126" class="i">+2.5 Some web font formats and services provide ways of &quot;optimizing&quot; the font for a particular website or web application; is that allowed? -</a><a href="#h6-0-127" id="h6-0-127" class="i">+Yes, it is permitted, but remember that these optimized versions are Modified Versions and so must follow OFL requirements like appropriate renaming. Also you need to bear in mind the other important parameters beyond compression, speed and responsiveness: you need to consider the audience of your particular website or web application, as choosing some optimization parameters may turn out to be less than ideal for them. Subsetting by removing certain glyphs or features may seriously limit functionality of the font in various languages that your users expect. It may also introduce degradation of quality in the rendering or specific bugs on the various target platforms compared to the original font from upstream. In other words, remember that one person&#39;s optimized font may be another person&#39;s missing feature. Various advanced typographic features (OpenType, Graphite or AAT) are also available through CSS and may provide the desired effects without the need to modify the font. -</a><a href="#h6-0-128" id="h6-0-128" class="i">+ -</a><a href="#h6-0-129" id="h6-0-129" class="i">+2.6 Is subsetting a web font considered modification? -</a><a href="#h6-0-130" id="h6-0-130" class="i">+Yes. Removing any parts of the font when delivering a web font to a browser, including unused glyphs and smart font code, is considered modification. This is permitted by the OFL but would not normally allow the use of RFNs. Some newer subsetting technologies may be able to subset in a way that allows users to effectively have access to the complete font, including smart font behaviour. See 2.8 and http://scripts.sil.org/OFL_web_fonts_and_RFNs -</a><a href="#h6-0-131" id="h6-0-131" class="i">+ -</a><a href="#h6-0-132" id="h6-0-132" class="i">+2.7 Are there any situations in which a modified web font could use RFNs? -</a><a href="#h6-0-133" id="h6-0-133" class="i">+Yes. If a web font is optimized only in ways that preserve Functional Equivalence (see 2.8), then it may use RFNs, as it reasonably represents the Original Version and respects the intentions of the author(s) and the main purposes of the RFN mechanism (avoids collisions, protects authors, minimizes support, encourages derivatives). However this is technically very difficult and often impractical, so a much better scenario is for the web font service or provider to sign a separate agreement with the author(s) that allows the use of RFNs for Modified Versions. -</a><a href="#h6-0-134" id="h6-0-134" class="i">+ -</a><a href="#h6-0-135" id="h6-0-135" class="i">+2.8 How do you know if an optimization to a web font preserves Functional Equivalence? -</a><a href="#h6-0-136" id="h6-0-136" class="i">+Functional Equivalence is described in full in the &#39;Web fonts and RFNs&#39; paper at http://scripts.sil.org/OFL_web_fonts_and_RFNs, in general, an optimized font is deemed to be Functionally Equivalent (FE) to the Original Version if it: -</a><a href="#h6-0-137" id="h6-0-137" class="i">+ -</a><a href="#h6-0-138" id="h6-0-138" class="i">+- Supports the same full character inventory. If a character can be properly displayed using the Original Version, then that same character, encoded correctly on a web page, will display properly. -</a><a href="#h6-0-139" id="h6-0-139" class="i">+- Provides the same smart font behavior. Any dynamic shaping behavior that works with the Original Version should work when optimized, unless the browser or environment does not support it. There does not need to be guaranteed support in the client, but there should be no forced degradation of smart font or shaping behavior, such as the removal or obfuscation of OpenType, Graphite or AAT tables. -</a><a href="#h6-0-140" id="h6-0-140" class="i">+- Presents text with no obvious degradation in visual quality. The lettershapes should be equally (or more) readable, within limits of the rendering platform. -</a><a href="#h6-0-141" id="h6-0-141" class="i">+- Preserves original author, project and license metadata. At a minimum, this should include: Copyright and authorship; The license as stated in the Original Version, whether that is the full text of the OFL or a link to the web version; Any RFN declarations; Information already present in the font or documentation that points back to the Original Version, such as a link to the project or the author&#39;s website. -</a><a href="#h6-0-142" id="h6-0-142" class="i">+ -</a><a href="#h6-0-143" id="h6-0-143" class="i">+If an optimized font meets these requirements, and so is considered to be FE, then it&#39;s very likely that the original author would feel that the optimized font is a good and reasonable equivalent. If it falls short of any of these requirements, the optimized font does not reasonably represent the Original Version, and so should be considered to be a Modified Version. Like other Modified Versions, it would not be allowed to use any RFNs and you simply need to pick your own font name. -</a><a href="#h6-0-144" id="h6-0-144" class="i">+ -</a><a href="#h6-0-145" id="h6-0-145" class="i">+2.9 Isn&#39;t use of web fonts another form of embedding? -</a><a href="#h6-0-146" id="h6-0-146" class="i">+No. Unlike embedded fonts in a PDF, web fonts are not an integrated part of the document itself. They are not specific to a single document and are often applied to thousands of documents around the world. The font data is not stored alongside the document data and often originates from a different location. The ease by which the web fonts used by a document may be identified and downloaded for desktop use demonstrates that they are philosophically and technically separate from the web pages that specify them. See http://scripts.sil.org/OFL_web_fonts_and_RFNs -</a><a href="#h6-0-147" id="h6-0-147" class="i">+ -</a><a href="#h6-0-148" id="h6-0-148" class="i">+2.10 So would it be better to not use RFNs at all if you want your font to be distributed by a web fonts service? -</a><a href="#h6-0-149" id="h6-0-149" class="i">+No. Although the OFL does not require authors to use RFNs, the RFN mechanism is an important part of the OFL model and completely compatible with web font services. If that web font service modifies the fonts, then the best solution is to sign a separate agreement for the use of any RFNs. It is perfectly valid for an author to not declare any RFNs, but before they do so they need to fully understand the benefits they are giving up, and the overall negative effect of allowing many different versions bearing the same name to be widely distributed. As a result, we don&#39;t generally recommend it. -</a><a href="#h6-0-150" id="h6-0-150" class="i">+ -</a><a href="#h6-0-151" id="h6-0-151" class="i">+2.11 What should an agreement for the use of RFNs say? Are there any examples? -</a><a href="#h6-0-152" id="h6-0-152" class="i">+There is no prescribed format for this agreement, as legal systems vary, and no recommended examples. Authors may wish to add specific clauses to further restrict use, require author review of Modified Versions, establish user support mechanisms or provide terms for ending the agreement. Such agreements are usually not public, and apply only to the main parties. However, it would be very beneficial for web font services to clearly state when they have established such agreements, so that the public understands clearly that their service is operating appropriately. -</a><a href="#h6-0-153" id="h6-0-153" class="i">+ -</a><a href="#h6-0-154" id="h6-0-154" class="i">+See the separate paper on &#39;Web Fonts &amp; RFNs&#39; for in-depth discussion of issues related to the use of RFNs for web fonts. This is available at http://scripts.sil.org/OFL_web_fonts_and_RFNs -</a><a href="#h6-0-155" id="h6-0-155" class="i">+ -</a><a href="#h6-0-156" id="h6-0-156" class="i">+ -</a><a href="#h6-0-157" id="h6-0-157" class="i">+3 MODIFYING OFL-LICENSED FONTS -</a><a href="#h6-0-158" id="h6-0-158" class="i">+ -</a><a href="#h6-0-159" id="h6-0-159" class="i">+3.1 Can I change the fonts? Are there any limitations to what things I can and cannot change? -</a><a href="#h6-0-160" id="h6-0-160" class="i">+You are allowed to change anything, as long as such changes do not violate the terms of the license. In other words, you are not allowed to remove the copyright statement(s) from the font, but you could put additional information into it that covers your contribution. See the placeholders in the OFL header template for recommendations on where to add your own statements. (Remember that, when authors have reserved names via the RFN mechanism, you need to change the internal names of the font to your own font name when making your modified version even if it is just a small change.) -</a><a href="#h6-0-161" id="h6-0-161" class="i">+ -</a><a href="#h6-0-162" id="h6-0-162" class="i">+3.2 I have a font that needs a few extra glyphs - can I take them from an OFL licensed font and copy them into mine? -</a><a href="#h6-0-163" id="h6-0-163" class="i">+Yes, but if you distribute that font to others it must be under the OFL, and include the information mentioned in condition 2 of the license. -</a><a href="#h6-0-164" id="h6-0-164" class="i">+ -</a><a href="#h6-0-165" id="h6-0-165" class="i">+3.3 Can I charge people for my additional work? In other words, if I add a bunch of special glyphs or OpenType/Graphite/AAT code, can I sell the enhanced font? -</a><a href="#h6-0-166" id="h6-0-166" class="i">+Not by itself. Derivative fonts must be released under the OFL and cannot be sold by themselves. It is permitted, however, to include them in a larger software package (such as text editors, office suites or operating systems), even if the larger package is sold. In that case, you are strongly encouraged, but not required, to also make that derived font easily and freely available outside of the larger package. -</a><a href="#h6-0-167" id="h6-0-167" class="i">+ -</a><a href="#h6-0-168" id="h6-0-168" class="i">+3.4 Can I pay someone to enhance the fonts for my use and distribution? -</a><a href="#h6-0-169" id="h6-0-169" class="i">+Yes. This is a good way to fund the further development of the fonts. Keep in mind, however, that if the font is distributed to others it must be under the OFL. You won&#39;t be able to recover your investment by exclusively selling the font, but you will be making a valuable contribution to the community. Please remember how you have benefited from the contributions of others. -</a><a href="#h6-0-170" id="h6-0-170" class="i">+ -</a><a href="#h6-0-171" id="h6-0-171" class="i">+3.5 I need to make substantial revisions to the font to make it work with my program. It will be a lot of work, and a big investment, and I want to be sure that it can only be distributed with my program. Can I restrict its use? -</a><a href="#h6-0-172" id="h6-0-172" class="i">+No. If you redistribute a Modified Version of the font it must be under the OFL. You may not restrict it in any way beyond what the OFL permits and requires. This is intended to ensure that all released improvements to the fonts become available to everyone. But you will likely get an edge over competitors by being the first to distribute a bundle with the enhancements. Again, please remember how you have benefited from the contributions of others. -</a><a href="#h6-0-173" id="h6-0-173" class="i">+ -</a><a href="#h6-0-174" id="h6-0-174" class="i">+3.6 Do I have to make any derivative fonts (including extended source files, build scripts, documentation, etc.) publicly available? -</a><a href="#h6-0-175" id="h6-0-175" class="i">+No, but please consider sharing your improvements with others. You may find that you receive in return more than what you gave. -</a><a href="#h6-0-176" id="h6-0-176" class="i">+ -</a><a href="#h6-0-177" id="h6-0-177" class="i">+3.7 If a trademark is claimed in the OFL font, does that trademark need to remain in modified fonts? -</a><a href="#h6-0-178" id="h6-0-178" class="i">+Yes. Any trademark notices must remain in any derivative fonts to respect trademark laws, but you may add any additional trademarks you claim, officially registered or not. For example if an OFL font called &quot;Foo&quot; contains a notice that &quot;Foo is a trademark of Acme&quot;, then if you rename the font to &quot;Bar&quot; when creating a Modified Version, the new trademark notice could say &quot;Foo is a trademark of Acme Inc. - Bar is a trademark of Roadrunner Technologies Ltd.&quot;. Trademarks work alongside the OFL and are not subject to the terms of the licensing agreement. The OFL does not grant any rights under trademark law. Bear in mind that trademark law varies from country to country and that there are no international trademark conventions as there are for copyright. You may need to significantly invest in registering and defending a trademark for it to remain valid in the countries you are interested in. This may be costly for an individual independent designer. -</a><a href="#h6-0-179" id="h6-0-179" class="i">+ -</a><a href="#h6-0-180" id="h6-0-180" class="i">+3.8 If I commit changes to a font (or publish a branch in a DVCS) as part of a public open source software project, do I have to change the internal font names? -</a><a href="#h6-0-181" id="h6-0-181" class="i">+Only if there are declared RFNs. Making a public commit or publishing a public branch is effectively redistributing your modifications, so any change to the font will require that you do not use the RFNs. Even if there are no RFNs, it may be useful to change the name or add a suffix indicating that a particular version of the font is still in development and not released yet. This will clearly indicate to users and fellow designers that this particular font is not ready for release yet. See section 5 for more details. -</a><a href="#h6-0-182" id="h6-0-182" class="i">+ -</a><a href="#h6-0-183" id="h6-0-183" class="i">+ -</a><a href="#h6-0-184" id="h6-0-184" class="i">+4 LICENSING YOUR ORIGINAL FONTS UNDER THE OFL -</a><a href="#h6-0-185" id="h6-0-185" class="i">+ -</a><a href="#h6-0-186" id="h6-0-186" class="i">+4.1 Can I use the SIL OFL for my own fonts? -</a><a href="#h6-0-187" id="h6-0-187" class="i">+Yes! We heartily encourage everyone to use the OFL to distribute their own original fonts. It is a carefully constructed license that allows great freedom along with enough artistic integrity protection for the work of the authors as well as clear rules for other contributors and those who redistribute the fonts. The licensing model is used successfully by various organisations, both for-profit and not-for-profit, to release fonts of varying levels of scope and complexity. -</a><a href="#h6-0-188" id="h6-0-188" class="i">+ -</a><a href="#h6-0-189" id="h6-0-189" class="i">+4.2 What do I have to do to apply the OFL to my font? -</a><a href="#h6-0-190" id="h6-0-190" class="i">+If you want to release your fonts under the OFL, we recommend you do the following: -</a><a href="#h6-0-191" id="h6-0-191" class="i">+ -</a><a href="#h6-0-192" id="h6-0-192" class="i">+4.2.1 Put your copyright and Reserved Font Names information at the beginning of the main OFL.txt file in place of the dedicated placeholders (marked with the &lt;&gt; characters). Include this file in your release package. -</a><a href="#h6-0-193" id="h6-0-193" class="i">+ -</a><a href="#h6-0-194" id="h6-0-194" class="i">+4.2.2 Put your copyright and the OFL text with your chosen Reserved Font Name(s) into your font files (the copyright and license fields). A link to the OFL text on the OFL web site is an acceptable (but not recommended) alternative. Also add this information to any other components (build scripts, glyph databases, documentation, test files, etc). Accurate metadata in your font files is beneficial to you as an increasing number of applications are exposing this information to the user. For example, clickable links can bring users back to your website and let them know about other work you have done or services you provide. Depending on the format of your fonts and sources, you can use template human-readable headers or machine-readable metadata. You should also double-check that there is no conflicting metadata in the font itself contradicting the license, such as the fstype bits in the os2 table or fields in the name table. -</a><a href="#h6-0-195" id="h6-0-195" class="i">+ -</a><a href="#h6-0-196" id="h6-0-196" class="i">+4.2.3 Write an initial FONTLOG.txt for your font and include it in the release package (see Section 6 and Appendix A for details including a template). -</a><a href="#h6-0-197" id="h6-0-197" class="i">+ -</a><a href="#h6-0-198" id="h6-0-198" class="i">+4.2.4 Include the relevant practical documentation on the license by adding the current OFL-FAQ.txt file in your package. -</a><a href="#h6-0-199" id="h6-0-199" class="i">+ -</a><a href="#h6-0-200" id="h6-0-200" class="i">+4.2.5 If you wish you can use the OFL graphics (http://scripts.sil.org/OFL_logo) on your website. -</a><a href="#h6-0-201" id="h6-0-201" class="i">+ -</a><a href="#h6-0-202" id="h6-0-202" class="i">+4.3 Will you make my font OFL for me? -</a><a href="#h6-0-203" id="h6-0-203" class="i">+We won&#39;t do the work for you. We can, however, try to answer your questions, unfortunately we do not have the resources to review and check your font packages for correct use of the OFL. We recommend you turn to designers, foundries or consulting companies with experience in doing open font design to provide this service to you. -</a><a href="#h6-0-204" id="h6-0-204" class="i">+ -</a><a href="#h6-0-205" id="h6-0-205" class="i">+4.4 Will you distribute my OFL font for me? -</a><a href="#h6-0-206" id="h6-0-206" class="i">+No, although if the font is of sufficient quality and general interest we may include a link to it on our partial list of OFL fonts on the OFL web site. You may wish to consider other open font catalogs or hosting services, such as the Unifont Font Guide (http://unifont.org/fontguide), The League of Movable Type (http://theleagueofmovabletype.com) or the Open Font Library (http://openfontlibrary.org/), which despite the name has no direct relationship to the OFL or SIL. We do not endorse any particular catalog or hosting service - it is your responsibility to determine if the service is right for you and if it treats authors with fairness. -</a><a href="#h6-0-207" id="h6-0-207" class="i">+ -</a><a href="#h6-0-208" id="h6-0-208" class="i">+4.5 Why should I use the OFL for my fonts? -</a><a href="#h6-0-209" id="h6-0-209" class="i">+- to meet needs for fonts that can be modified to support lesser-known languages -</a><a href="#h6-0-210" id="h6-0-210" class="i">+- to provide a legal and clear way for people to respect your work but still use it (and reduce piracy) -</a><a href="#h6-0-211" id="h6-0-211" class="i">+- to involve others in your font project -</a><a href="#h6-0-212" id="h6-0-212" class="i">+- to enable your fonts to be expanded with new weights and improved writing system/language support -</a><a href="#h6-0-213" id="h6-0-213" class="i">+- to allow more technical font developers to add features to your design (such as OpenType, Graphite or AAT support) -</a><a href="#h6-0-214" id="h6-0-214" class="i">+- to renew the life of an old font lying on your hard drive with no business model -</a><a href="#h6-0-215" id="h6-0-215" class="i">+- to allow your font to be included in Libre Software operating systems like Ubuntu -</a><a href="#h6-0-216" id="h6-0-216" class="i">+- to give your font world status and wide, unrestricted distribution -</a><a href="#h6-0-217" id="h6-0-217" class="i">+- to educate students about quality typeface and font design -</a><a href="#h6-0-218" id="h6-0-218" class="i">+- to expand your test base and get more useful feedback -</a><a href="#h6-0-219" id="h6-0-219" class="i">+- to extend your reach to new markets when users see your metadata and go to your website -</a><a href="#h6-0-220" id="h6-0-220" class="i">+- to get your font more easily into one of the web font online services -</a><a href="#h6-0-221" id="h6-0-221" class="i">+- to attract attention for your commercial fonts -</a><a href="#h6-0-222" id="h6-0-222" class="i">+- to make money through web font services -</a><a href="#h6-0-223" id="h6-0-223" class="i">+- to make money by bundling fonts with applications -</a><a href="#h6-0-224" id="h6-0-224" class="i">+- to make money adjusting and extending existing open fonts -</a><a href="#h6-0-225" id="h6-0-225" class="i">+- to get a better chance that foundations/NGOs/charities/companies who commission fonts will pick you -</a><a href="#h6-0-226" id="h6-0-226" class="i">+- to be part of a sharing design and development community -</a><a href="#h6-0-227" id="h6-0-227" class="i">+- to give back and contribute to a growing body of font sources -</a><a href="#h6-0-228" id="h6-0-228" class="i">+ -</a><a href="#h6-0-229" id="h6-0-229" class="i">+ -</a><a href="#h6-0-230" id="h6-0-230" class="i">+5 CHOOSING RESERVED FONT NAMES -</a><a href="#h6-0-231" id="h6-0-231" class="i">+ -</a><a href="#h6-0-232" id="h6-0-232" class="i">+5.1 What are Reserved Font Names? -</a><a href="#h6-0-233" id="h6-0-233" class="i">+These are font names, or portions of font names, that the author has chosen to reserve for use only with the Original Version of the font, or for Modified Version(s) created by the original author. -</a><a href="#h6-0-234" id="h6-0-234" class="i">+ -</a><a href="#h6-0-235" id="h6-0-235" class="i">+5.2 Why can&#39;t I use the Reserved Font Names in my derivative font names? I&#39;d like people to know where the design came from. -</a><a href="#h6-0-236" id="h6-0-236" class="i">+The best way to acknowledge the source of the design is to thank the original authors and any other contributors in the files that are distributed with your revised font (although no acknowledgement is required). The FONTLOG is a natural place to do this. Reserved Font Names ensure that the only fonts that have the original names are the unmodified Original Versions. This allows designers to maintain artistic integrity while allowing collaboration to happen. It eliminates potential confusion and name conflicts. When choosing a name, be creative and avoid names that reuse almost all the same letters in the same order or sound like the original. It will help everyone if Original Versions and Modified Versions can easily be distinguished from one another and from other derivatives. Any substitution and matching mechanism is outside the scope of the license. -</a><a href="#h6-0-237" id="h6-0-237" class="i">+ -</a><a href="#h6-0-238" id="h6-0-238" class="i">+5.3 What do you mean by &quot;primary name as presented to the user&quot;? Are you referring to the font menu name? -</a><a href="#h6-0-239" id="h6-0-239" class="i">+Yes, this applies to the font menu name and other mechanisms that specify a font in a document. It would be fine, however, to keep a text reference to the original fonts in the description field, in your modified source file or in documentation provided alongside your derivative as long as no one could be confused that your modified source is the original. But you cannot use the Reserved Font Names in any way to identify the font to the user (unless the Copyright Holder(s) allow(s) it through a separate agreement). Users who install derivatives (Modified Versions) on their systems should not see any of the original Reserved Font Names in their font menus, for example. Again, this is to ensure that users are not confused and do not mistake one font for another and so expect features only another derivative or the Original Version can actually offer. -</a><a href="#h6-0-240" id="h6-0-240" class="i">+ -</a><a href="#h6-0-241" id="h6-0-241" class="i">+5.4 Am I not allowed to use any part of the Reserved Font Names? -</a><a href="#h6-0-242" id="h6-0-242" class="i">+You may not use individual words from the Reserved Font Names, but you would be allowed to use parts of words, as long as you do not use any word from the Reserved Font Names entirely. We do not recommend using parts of words because of potential confusion, but it is allowed. For example, if &quot;Foobar&quot; was a Reserved Font Name, you would be allowed to use &quot;Foo&quot; or &quot;bar&quot;, although we would not recommend it. Such an unfortunate choice would confuse the users of your fonts as well as make it harder for other designers to contribute. -</a><a href="#h6-0-243" id="h6-0-243" class="i">+ -</a><a href="#h6-0-244" id="h6-0-244" class="i">+5.5 So what should I, as an author, identify as Reserved Font Names? -</a><a href="#h6-0-245" id="h6-0-245" class="i">+Original authors are encouraged to name their fonts using clear, distinct names, and only declare the unique parts of the name as Reserved Font Names. For example, the author of a font called &quot;Foobar Sans&quot; would declare &quot;Foobar&quot; as a Reserved Font Name, but not &quot;Sans&quot;, as that is a common typographical term, and may be a useful word to use in a derivative font name. Reserved Font Names should also be single words for simplicity and legibility. A font called &quot;Flowing River&quot; should have Reserved Font Names &quot;Flowing&quot; and &quot;River&quot;, not &quot;Flowing River&quot;. You also need to be very careful about reserving font names which are already linked to trademarks (whether registered or not) which you do not own. -</a><a href="#h6-0-246" id="h6-0-246" class="i">+ -</a><a href="#h6-0-247" id="h6-0-247" class="i">+5.6 Do I, as an author, have to identify any Reserved Font Names? -</a><a href="#h6-0-248" id="h6-0-248" class="i">+No. RFNs are optional and not required, but we encourage you to use them. This is primarily to avoid confusion between your work and Modified Versions. As an author you can release a font under the OFL and not declare any Reserved Font Names. There may be situations where you find that using no RFNs and letting your font be changed and modified - including any kind of modification - without having to change the original name is desirable. However you need to be fully aware of the consequences. There will be no direct way for end-users and other designers to distinguish your Original Version from many Modified Versions that may be created. You have to trust whoever is making the changes and the optimizations to not introduce problematic changes. The RFNs you choose for your own creation have value to you as an author because they allow you to maintain artistic integrity and keep some control over the distribution channel to your end-users. For discussion of RFNs and web fonts see section 2. -</a><a href="#h6-0-249" id="h6-0-249" class="i">+ -</a><a href="#h6-0-250" id="h6-0-250" class="i">+5.7 Are any names (such as the main font name) reserved by default? -</a><a href="#h6-0-251" id="h6-0-251" class="i">+No. That is a change to the license as of version 1.1. If you want any names to be Reserved Font Names, they must be specified after the copyright statement(s). -</a><a href="#h6-0-252" id="h6-0-252" class="i">+ -</a><a href="#h6-0-253" id="h6-0-253" class="i">+5.8 Is there any situation in which I can use Reserved Font Names for a Modified Version? -</a><a href="#h6-0-254" id="h6-0-254" class="i">+The Copyright Holder(s) can give certain trusted parties the right to use any of the Reserved Font Names through separate written agreements. For example, even if &quot;Foobar&quot; is a RFN, you could write up an agreement to give company &quot;XYZ&quot; the right to distribute a modified version with a name that includes &quot;Foobar&quot;. This allows for freedom without confusion. The existence of such an agreement should be made as clear as possible to downstream users and designers in the distribution package and the relevant documentation. They need to know if they are a party to the agreement or not and what they are practically allowed to do or not even if all the details of the agreement are not public. -</a><a href="#h6-0-255" id="h6-0-255" class="i">+ -</a><a href="#h6-0-256" id="h6-0-256" class="i">+5.9 Do font rebuilds require a name change? Do I have to change the name of the font when my packaging workflow includes a full rebuild from source? -</a><a href="#h6-0-257" id="h6-0-257" class="i">+Yes, all rebuilds which change the font data and the smart code are Modified Versions and the requirements of the OFL apply: you need to respect what the Author(s) have chosen in terms of Reserved Font Names. However if a package (or installer) is simply a wrapper or a compressed structure around the final font - leaving them intact on the inside - then no name change is required. Please get in touch with the author(s) and copyright holder(s) to inquire about the presence of font sources beyond the final font file(s) and the recommended build path. That build path may very well be non-trivial and hard to reproduce accurately by the maintainer. If a full font build path is made available by the upstream author(s) please be aware that any regressions and changes you may introduce when doing a rebuild for packaging purposes is your own responsibility as a package maintainer since you are effectively creating a separate branch. You should make it very clear to your users that your rebuilt version is not the canonical one from upstream. -</a><a href="#h6-0-258" id="h6-0-258" class="i">+ -</a><a href="#h6-0-259" id="h6-0-259" class="i">+5.10 Can I add other Reserved Font Names when making a derivative font? -</a><a href="#h6-0-260" id="h6-0-260" class="i">+Yes. List your additional Reserved Font Names after your additional copyright statement, as indicated with example placeholders at the top of the OFL.txt file. Be sure you do not remove any existing RFNs but only add your own. RFN statements should be placed next to the copyright statement of the relevant author as indicated in the OFL.txt template to make them visible to designers wishing to make their separate version. -</a><a href="#h6-0-261" id="h6-0-261" class="i">+ -</a><a href="#h6-0-262" id="h6-0-262" class="i">+ -</a><a href="#h6-0-263" id="h6-0-263" class="i">+6 ABOUT THE FONTLOG -</a><a href="#h6-0-264" id="h6-0-264" class="i">+ -</a><a href="#h6-0-265" id="h6-0-265" class="i">+6.1 What is this FONTLOG thing exactly? -</a><a href="#h6-0-266" id="h6-0-266" class="i">+It has three purposes: 1) to provide basic information on the font to users and other designers and developers, 2) to document changes that have been made to the font or accompanying files, either by the original authors or others, and 3) to provide a place to acknowledge authors and other contributors. Please use it! -</a><a href="#h6-0-267" id="h6-0-267" class="i">+ -</a><a href="#h6-0-268" id="h6-0-268" class="i">+6.2 Is the FONTLOG required? -</a><a href="#h6-0-269" id="h6-0-269" class="i">+It is not a requirement of the license, but we strongly recommend you have one. -</a><a href="#h6-0-270" id="h6-0-270" class="i">+ -</a><a href="#h6-0-271" id="h6-0-271" class="i">+6.3 Am I required to update the FONTLOG when making Modified Versions? -</a><a href="#h6-0-272" id="h6-0-272" class="i">+No, but users, designers and other developers might get very frustrated with you if you don&#39;t. People need to know how derivative fonts differ from the original, and how to take advantage of the changes, or build on them. There are utilities that can help create and maintain a FONTLOG, such as the FONTLOG support in FontForge. -</a><a href="#h6-0-273" id="h6-0-273" class="i">+ -</a><a href="#h6-0-274" id="h6-0-274" class="i">+6.4 What should the FONTLOG look like? -</a><a href="#h6-0-275" id="h6-0-275" class="i">+It is typically a separate text file (FONTLOG.txt), but can take other formats. It commonly includes these four sections: -</a><a href="#h6-0-276" id="h6-0-276" class="i">+ -</a><a href="#h6-0-277" id="h6-0-277" class="i">+- brief header describing the FONTLOG itself and name of the font family -</a><a href="#h6-0-278" id="h6-0-278" class="i">+- Basic Font Information - description of the font family, purpose and breadth -</a><a href="#h6-0-279" id="h6-0-279" class="i">+- ChangeLog - chronological listing of changes -</a><a href="#h6-0-280" id="h6-0-280" class="i">+- Acknowledgements - list of authors and contributors with contact information -</a><a href="#h6-0-281" id="h6-0-281" class="i">+ -</a><a href="#h6-0-282" id="h6-0-282" class="i">+It could also include other sections, such as: where to find documentation, how to make contributions, information on contributing organizations, source code details, and a short design guide. See Appendix A for an example FONTLOG. -</a><a href="#h6-0-283" id="h6-0-283" class="i">+ -</a><a href="#h6-0-284" id="h6-0-284" class="i">+ -</a><a href="#h6-0-285" id="h6-0-285" class="i">+7 MAKING CONTRIBUTIONS TO OFL PROJECTS -</a><a href="#h6-0-286" id="h6-0-286" class="i">+ -</a><a href="#h6-0-287" id="h6-0-287" class="i">+7.1 Can I contribute work to OFL projects? -</a><a href="#h6-0-288" id="h6-0-288" class="i">+In many cases, yes. It is common for OFL fonts to be developed by a team of people who welcome contributions from the wider community. Contact the original authors for specific information on how to participate in their projects. -</a><a href="#h6-0-289" id="h6-0-289" class="i">+ -</a><a href="#h6-0-290" id="h6-0-290" class="i">+7.2 Why should I contribute my changes back to the original authors? -</a><a href="#h6-0-291" id="h6-0-291" class="i">+It would benefit many people if you contributed back in response to what you&#39;ve received. Your contributions and improvements to the fonts and other components could be a tremendous help and would encourage others to contribute as well and &#39;give back&#39;. You will then benefit from other people&#39;s contributions as well. Sometimes maintaining your own separate version takes more effort than merging back with the original. Be aware that any contributions, however, must be either your own original creation or work that you own, and you may be asked to affirm that clearly when you contribute. -</a><a href="#h6-0-292" id="h6-0-292" class="i">+ -</a><a href="#h6-0-293" id="h6-0-293" class="i">+7.3 I&#39;ve made some very nice improvements to the font. Will you consider adopting them and putting them into future Original Versions? -</a><a href="#h6-0-294" id="h6-0-294" class="i">+Most authors would be very happy to receive such contributions. Keep in mind that it is unlikely that they would want to incorporate major changes that would require additional work on their end. Any contributions would likely need to be made for all the fonts in a family and match the overall design and style. Authors are encouraged to include a guide to the design with the fonts. It would also help to have contributions submitted as patches or clearly marked changes - the use of smart source revision control systems like subversion, mercurial, git or bzr is a good idea. Please follow the recommendations given by the author(s) in terms of preferred source formats and configuration parameters for sending contributions. If this is not indicated in a FONTLOG or other documentation of the font, consider asking them directly. Examples of useful contributions are bug fixes, additional glyphs, stylistic alternates (and the smart font code to access them) or improved hinting. Keep in mind that some kinds of changes (esp. hinting) may be technically difficult to integrate. -</a><a href="#h6-0-295" id="h6-0-295" class="i">+ -</a><a href="#h6-0-296" id="h6-0-296" class="i">+7.4 How can I financially support the development of OFL fonts? -</a><a href="#h6-0-297" id="h6-0-297" class="i">+It is likely that most authors of OFL fonts would accept financial contributions - contact them for instructions on how to do this. Such contributions would support future development. You can also pay for others to enhance the fonts and contribute the results back to the original authors for inclusion in the Original Version. -</a><a href="#h6-0-298" id="h6-0-298" class="i">+ -</a><a href="#h6-0-299" id="h6-0-299" class="i">+ -</a><a href="#h6-0-300" id="h6-0-300" class="i">+8 ABOUT THE LICENSE ITSELF -</a><a href="#h6-0-301" id="h6-0-301" class="i">+ -</a><a href="#h6-0-302" id="h6-0-302" class="i">+8.1 I see that this is version 1.1 of the license. Will there be later changes? -</a><a href="#h6-0-303" id="h6-0-303" class="i">+Version 1.1 is the first minor revision of the OFL. We are confident that version 1.1 will meet most needs, but are open to future improvements. Any revisions would be for future font releases, and previously existing licenses would remain in effect. No retroactive changes are possible, although the Copyright Holder(s) can re-release the font under a revised OFL. All versions will be available on our web site: http://scripts.sil.org/OFL. -</a><a href="#h6-0-304" id="h6-0-304" class="i">+ -</a><a href="#h6-0-305" id="h6-0-305" class="i">+8.2 Does this license restrict the rights of the Copyright Holder(s)? -</a><a href="#h6-0-306" id="h6-0-306" class="i">+No. The Copyright Holder(s) still retain(s) all the rights to their creation; they are only releasing a portion of it for use in a specific way. For example, the Copyright Holder(s) may choose to release a &#39;basic&#39; version of their font under the OFL, but sell a restricted &#39;enhanced&#39; version under a different license. They may also choose to release the same font under both the OFL and some other license. Only the Copyright Holder(s) can do this, and doing so does not change the terms of the OFL as it applies to that font. -</a><a href="#h6-0-307" id="h6-0-307" class="i">+ -</a><a href="#h6-0-308" id="h6-0-308" class="i">+8.3 Is the OFL a contract or a license? -</a><a href="#h6-0-309" id="h6-0-309" class="i">+The OFL is a worldwide license based on international copyright agreements and conventions. It is not a contract and so does not require you to sign it to have legal validity. By using, modifying and redistributing components under the OFL you indicate that you accept the license. -</a><a href="#h6-0-310" id="h6-0-310" class="i">+ -</a><a href="#h6-0-311" id="h6-0-311" class="i">+8.4 I really like the terms of the OFL, but want to change it a little. Am I allowed to take ideas and actual wording from the OFL and put them into my own custom license for distributing my fonts? -</a><a href="#h6-0-312" id="h6-0-312" class="i">+We strongly recommend against creating your very own unique open licensing model. Using a modified or derivative license will likely cut you off - along with the font(s) under that license - from the community of designers using the OFL, potentially expose you and your users to legal liabilities, and possibly put your work and rights at risk. The OFL went though a community and legal review process that took years of effort, and that review is only applicable to an unmodified OFL. The text of the OFL has been written by SIL (with review and consultation from the community) and is copyright (c) 2005-2013 SIL International. You may re-use the ideas and wording (in part, not in whole) in another non-proprietary license provided that you call your license by another unambiguous name, that you do not use the preamble, that you do not mention SIL and that you clearly present your license as different from the OFL so as not to cause confusion by being too similar to the original. If you feel the OFL does not meet your needs for an open license, please contact us. -</a><a href="#h6-0-313" id="h6-0-313" class="i">+ -</a><a href="#h6-0-314" id="h6-0-314" class="i">+8.5 Can I translate the license and the FAQ into other languages? -</a><a href="#h6-0-315" id="h6-0-315" class="i">+SIL certainly recognises the need for people who are not familiar with English to be able to understand the OFL and its use. Making the license very clear and readable has been a key goal for the OFL, but we know that people understand their own language best. -</a><a href="#h6-0-316" id="h6-0-316" class="i">+ -</a><a href="#h6-0-317" id="h6-0-317" class="i">+If you are an experienced translator, you are very welcome to translate the OFL and OFL-FAQ so that designers and users in your language community can understand the license better. But only the original English version of the license has legal value and has been approved by the community. Translations do not count as legal substitutes and should only serve as a way to explain the original license. SIL - as the author and steward of the license for the community at large - does not approve any translation of the OFL as legally valid because even small translation ambiguities could be abused and create problems. -</a><a href="#h6-0-318" id="h6-0-318" class="i">+ -</a><a href="#h6-0-319" id="h6-0-319" class="i">+SIL gives permission to publish unofficial translations into other languages provided that they comply with the following guidelines: -</a><a href="#h6-0-320" id="h6-0-320" class="i">+ -</a><a href="#h6-0-321" id="h6-0-321" class="i">+- Put the following disclaimer in both English and the target language stating clearly that the translation is unofficial: -</a><a href="#h6-0-322" id="h6-0-322" class="i">+ -</a><a href="#h6-0-323" id="h6-0-323" class="i">+&quot;This is an unofficial translation of the SIL Open Font License into &lt;language_name&gt;. It was not published by SIL International, and does not legally state the distribution terms for fonts that use the OFL. A release under the OFL is only valid when using the original English text. However, we recognize that this unofficial translation will help users and designers not familiar with English to better understand and use the OFL. We encourage designers who consider releasing their creation under the OFL to read the OFL-FAQ in their own language if it is available. Please go to http://scripts.sil.org/OFL for the official version of the license and the accompanying OFL-FAQ.&quot; -</a><a href="#h6-0-324" id="h6-0-324" class="i">+ -</a><a href="#h6-0-325" id="h6-0-325" class="i">+- Keep your unofficial translation current and update it at our request if needed, for example if there is any ambiguity which could lead to confusion. -</a><a href="#h6-0-326" id="h6-0-326" class="i">+ -</a><a href="#h6-0-327" id="h6-0-327" class="i">+If you start such a unofficial translation effort of the OFL and OFL-FAQ please let us know. -</a><a href="#h6-0-328" id="h6-0-328" class="i">+ -</a><a href="#h6-0-329" id="h6-0-329" class="i">+8.6 Does the OFL have an explicit expiration term? -</a><a href="#h6-0-330" id="h6-0-330" class="i">+No, the implicit intent of the OFL is that the permissions granted are perpetual and irrevocable. -</a><a href="#h6-0-331" id="h6-0-331" class="i">+ -</a><a href="#h6-0-332" id="h6-0-332" class="i">+ -</a><a href="#h6-0-333" id="h6-0-333" class="i">+9 ABOUT SIL INTERNATIONAL -</a><a href="#h6-0-334" id="h6-0-334" class="i">+ -</a><a href="#h6-0-335" id="h6-0-335" class="i">+9.1 Who is SIL International and what do they do? -</a><a href="#h6-0-336" id="h6-0-336" class="i">+SIL serves language communities worldwide, building their capacity for sustainable language development, by means of research, translation, training and materials development. SIL makes its services available to all without regard to religious belief, political ideology, gender, race, or ethnic background. SIL&#39;s members and volunteers share a Christian commitment. -</a><a href="#h6-0-337" id="h6-0-337" class="i">+ -</a><a href="#h6-0-338" id="h6-0-338" class="i">+9.2 What does this have to do with font licensing? -</a><a href="#h6-0-339" id="h6-0-339" class="i">+The ability to read, write, type and publish in one&#39;s own language is one of the most critical needs for millions of people around the world. This requires fonts that are widely available and support lesser-known languages. SIL develops - and encourages others to develop - a complete stack of writing systems implementation components available under open licenses. This open stack includes input methods, smart fonts, smart rendering libraries and smart applications. There has been a need for a common open license that is specifically applicable to fonts and related software (a crucial component of this stack), so SIL developed the SIL Open Font License with the help of the Free/Libre and Open Source Software community. -</a><a href="#h6-0-340" id="h6-0-340" class="i">+ -</a><a href="#h6-0-341" id="h6-0-341" class="i">+9.3 How can I contact SIL? -</a><a href="#h6-0-342" id="h6-0-342" class="i">+Our main web site is: http://www.sil.org/ -</a><a href="#h6-0-343" id="h6-0-343" class="i">+Our site about complex scripts is: http://scripts.sil.org/ -</a><a href="#h6-0-344" id="h6-0-344" class="i">+Information about this license (and contact information) is at: http://scripts.sil.org/OFL -</a><a href="#h6-0-345" id="h6-0-345" class="i">+ -</a><a href="#h6-0-346" id="h6-0-346" class="i">+ -</a><a href="#h6-0-347" id="h6-0-347" class="i">+APPENDIX A - FONTLOG EXAMPLE -</a><a href="#h6-0-348" id="h6-0-348" class="i">+ -</a><a href="#h6-0-349" id="h6-0-349" class="i">+Here is an example of the recommended format for a FONTLOG, although other formats are allowed. -</a><a href="#h6-0-350" id="h6-0-350" class="i">+ -</a><a href="#h6-0-351" id="h6-0-351" class="i">+----- -</a><a href="#h6-0-352" id="h6-0-352" class="i">+FONTLOG for the GlobalFontFamily fonts -</a><a href="#h6-0-353" id="h6-0-353" class="i">+ -</a><a href="#h6-0-354" id="h6-0-354" class="i">+This file provides detailed information on the GlobalFontFamily Font Software. This information should be distributed along with the GlobalFontFamily fonts and any derivative works. -</a><a href="#h6-0-355" id="h6-0-355" class="i">+ -</a><a href="#h6-0-356" id="h6-0-356" class="i">+Basic Font Information -</a><a href="#h6-0-357" id="h6-0-357" class="i">+ -</a><a href="#h6-0-358" id="h6-0-358" class="i">+GlobalFontFamily is a Unicode typeface family that supports all languages that use the Latin script and its variants, and could be expanded to support other scripts. -</a><a href="#h6-0-359" id="h6-0-359" class="i">+ -</a><a href="#h6-0-360" id="h6-0-360" class="i">+NewWorldFontFamily is based on the GlobalFontFamily and also supports Greek, Hebrew, Cyrillic and Armenian. -</a><a href="#h6-0-361" id="h6-0-361" class="i">+ -</a><a href="#h6-0-362" id="h6-0-362" class="i">+More specifically, this release supports the following Unicode ranges... -</a><a href="#h6-0-363" id="h6-0-363" class="i">+This release contains... -</a><a href="#h6-0-364" id="h6-0-364" class="i">+Documentation can be found at... -</a><a href="#h6-0-365" id="h6-0-365" class="i">+To contribute to the project... -</a><a href="#h6-0-366" id="h6-0-366" class="i">+ -</a><a href="#h6-0-367" id="h6-0-367" class="i">+ChangeLog -</a><a href="#h6-0-368" id="h6-0-368" class="i">+ -</a><a href="#h6-0-369" id="h6-0-369" class="i">+10 December 2010 (Fred Foobar) GlobalFontFamily-devel version 1.4 -</a><a href="#h6-0-370" id="h6-0-370" class="i">+- fix new build and testing system (bug #123456) -</a><a href="#h6-0-371" id="h6-0-371" class="i">+ -</a><a href="#h6-0-372" id="h6-0-372" class="i">+1 August 2008 (Tom Parker) GlobalFontFamily version 1.2.1 -</a><a href="#h6-0-373" id="h6-0-373" class="i">+- Tweaked the smart font code (Branch merged with trunk version) -</a><a href="#h6-0-374" id="h6-0-374" class="i">+- Provided improved build and debugging environment for smart behaviours -</a><a href="#h6-0-375" id="h6-0-375" class="i">+ -</a><a href="#h6-0-376" id="h6-0-376" class="i">+7 February 2007 (Pat Johnson) NewWorldFontFamily Version 1.3 -</a><a href="#h6-0-377" id="h6-0-377" class="i">+- Added Greek and Cyrillic glyphs -</a><a href="#h6-0-378" id="h6-0-378" class="i">+ -</a><a href="#h6-0-379" id="h6-0-379" class="i">+7 March 2006 (Fred Foobar) NewWorldFontFamily Version 1.2 -</a><a href="#h6-0-380" id="h6-0-380" class="i">+- Tweaked contextual behaviours -</a><a href="#h6-0-381" id="h6-0-381" class="i">+ -</a><a href="#h6-0-382" id="h6-0-382" class="i">+1 Feb 2005 (Jane Doe) NewWorldFontFamily Version 1.1 -</a><a href="#h6-0-383" id="h6-0-383" class="i">+- Improved build script performance and verbosity -</a><a href="#h6-0-384" id="h6-0-384" class="i">+- Extended the smart code documentation -</a><a href="#h6-0-385" id="h6-0-385" class="i">+- Corrected minor typos in the documentation -</a><a href="#h6-0-386" id="h6-0-386" class="i">+- Fixed position of combining inverted breve below (U+032F) -</a><a href="#h6-0-387" id="h6-0-387" class="i">+- Added OpenType/Graphite smart code for Armenian -</a><a href="#h6-0-388" id="h6-0-388" class="i">+- Added Armenian glyphs (U+0531 -&gt; U+0587) -</a><a href="#h6-0-389" id="h6-0-389" class="i">+- Released as &quot;NewWorldFontFamily&quot; -</a><a href="#h6-0-390" id="h6-0-390" class="i">+ -</a><a href="#h6-0-391" id="h6-0-391" class="i">+1 Jan 2005 (Joe Smith) GlobalFontFamily Version 1.0 -</a><a href="#h6-0-392" id="h6-0-392" class="i">+- Initial release -</a><a href="#h6-0-393" id="h6-0-393" class="i">+ -</a><a href="#h6-0-394" id="h6-0-394" class="i">+Acknowledgements -</a><a href="#h6-0-395" id="h6-0-395" class="i">+ -</a><a href="#h6-0-396" id="h6-0-396" class="i">+If you make modifications be sure to add your name (N), email (E), web-address (if you have one) (W) and description (D). This list is in alphabetical order. -</a><a href="#h6-0-397" id="h6-0-397" class="i">+ -</a><a href="#h6-0-398" id="h6-0-398" class="i">+N: Jane Doe -</a><a href="#h6-0-399" id="h6-0-399" class="i">+E: jane@university.edu -</a><a href="#h6-0-400" id="h6-0-400" class="i">+W: http://art.university.edu/projects/fonts -</a><a href="#h6-0-401" id="h6-0-401" class="i">+D: Contributor - Armenian glyphs and code -</a><a href="#h6-0-402" id="h6-0-402" class="i">+ -</a><a href="#h6-0-403" id="h6-0-403" class="i">+N: Fred Foobar -</a><a href="#h6-0-404" id="h6-0-404" class="i">+E: fred@foobar.org -</a><a href="#h6-0-405" id="h6-0-405" class="i">+W: http://foobar.org -</a><a href="#h6-0-406" id="h6-0-406" class="i">+D: Contributor - misc Graphite fixes -</a><a href="#h6-0-407" id="h6-0-407" class="i">+ -</a><a href="#h6-0-408" id="h6-0-408" class="i">+N: Pat Johnson -</a><a href="#h6-0-409" id="h6-0-409" class="i">+E: pat@fontstudio.org -</a><a href="#h6-0-410" id="h6-0-410" class="i">+W: http://pat.fontstudio.org -</a><a href="#h6-0-411" id="h6-0-411" class="i">+D: Designer - Greek &amp; Cyrillic glyphs based on Roman design -</a><a href="#h6-0-412" id="h6-0-412" class="i">+ -</a><a href="#h6-0-413" id="h6-0-413" class="i">+N: Tom Parker -</a><a href="#h6-0-414" id="h6-0-414" class="i">+E: tom@company.com -</a><a href="#h6-0-415" id="h6-0-415" class="i">+W: http://www.company.com/tom/projects/fonts -</a><a href="#h6-0-416" id="h6-0-416" class="i">+D: Engineer - original smart font code -</a><a href="#h6-0-417" id="h6-0-417" class="i">+ -</a><a href="#h6-0-418" id="h6-0-418" class="i">+N: Joe Smith -</a><a href="#h6-0-419" id="h6-0-419" class="i">+E: joe@fontstudio.org -</a><a href="#h6-0-420" id="h6-0-420" class="i">+W: http://joe.fontstudio.org -</a><a href="#h6-0-421" id="h6-0-421" class="i">+D: Designer - original Roman glyphs -</a><a href="#h6-0-422" id="h6-0-422" class="i">+ -</a><a href="#h6-0-423" id="h6-0-423" class="i">+Fontstudio.org is an not-for-profit design group whose purpose is... -</a><a href="#h6-0-424" id="h6-0-424" class="i">+Foobar.org is a distributed community of developers... -</a><a href="#h6-0-425" id="h6-0-425" class="i">+Company.com is a small business who likes to support community designers... -</a><a href="#h6-0-426" id="h6-0-426" class="i">+University.edu is a renowned educational institution with a strong design department... -</a><a href="#h6-0-427" id="h6-0-427" class="i">+----- -</a><a href="#h6-0-428" id="h6-0-428" class="i">+ -</a><b>diff --git a/<a id="h7" href="../file/public_html/static/fonts/Terminus-Bold.ttf.html">public_html/static/fonts/Terminus-Bold.ttf</a> b/<a href="../file/public_html/static/fonts/Terminus-Bold.ttf.html">public_html/static/fonts/Terminus-Bold.ttf</a></b> -Binary files differ. -<b>diff --git a/<a id="h8" href="../file/public_html/static/fonts/Terminus-Italic.ttf.html">public_html/static/fonts/Terminus-Italic.ttf</a> b/<a href="../file/public_html/static/fonts/Terminus-Italic.ttf.html">public_html/static/fonts/Terminus-Italic.ttf</a></b> -Binary files differ. -<b>diff --git a/<a id="h9" href="../file/public_html/static/fonts/Terminus.ttf.html">public_html/static/fonts/Terminus.ttf</a> b/<a href="../file/public_html/static/fonts/Terminus.ttf.html">public_html/static/fonts/Terminus.ttf</a></b> -Binary files differ. -<b>diff --git a/<a id="h10" href="../file/public_html/static/fonts/__MACOSX/._Now-Black.otf.html">public_html/static/fonts/__MACOSX/._Now-Black.otf</a> b/<a href="../file/public_html/static/fonts/__MACOSX/._Now-Black.otf.html">public_html/static/fonts/__MACOSX/._Now-Black.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h11" href="../file/public_html/static/fonts/__MACOSX/._Now-Bold.otf.html">public_html/static/fonts/__MACOSX/._Now-Bold.otf</a> b/<a href="../file/public_html/static/fonts/__MACOSX/._Now-Bold.otf.html">public_html/static/fonts/__MACOSX/._Now-Bold.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h12" href="../file/public_html/static/fonts/__MACOSX/._Now-Light.otf.html">public_html/static/fonts/__MACOSX/._Now-Light.otf</a> b/<a href="../file/public_html/static/fonts/__MACOSX/._Now-Light.otf.html">public_html/static/fonts/__MACOSX/._Now-Light.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h13" href="../file/public_html/static/fonts/__MACOSX/._Now-Medium.otf.html">public_html/static/fonts/__MACOSX/._Now-Medium.otf</a> b/<a href="../file/public_html/static/fonts/__MACOSX/._Now-Medium.otf.html">public_html/static/fonts/__MACOSX/._Now-Medium.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h14" href="../file/public_html/static/fonts/__MACOSX/._Now-Regular.otf.html">public_html/static/fonts/__MACOSX/._Now-Regular.otf</a> b/<a href="../file/public_html/static/fonts/__MACOSX/._Now-Regular.otf.html">public_html/static/fonts/__MACOSX/._Now-Regular.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h15" href="../file/public_html/static/fonts/__MACOSX/._Now-Thin.otf.html">public_html/static/fonts/__MACOSX/._Now-Thin.otf</a> b/<a href="../file/public_html/static/fonts/__MACOSX/._Now-Thin.otf.html">public_html/static/fonts/__MACOSX/._Now-Thin.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h16" href="../file/public_html/static/fonts/__MACOSX/._OFL-FAQ.txt.html">public_html/static/fonts/__MACOSX/._OFL-FAQ.txt</a> b/<a href="../file/public_html/static/fonts/__MACOSX/._OFL-FAQ.txt.html">public_html/static/fonts/__MACOSX/._OFL-FAQ.txt</a></b> -Binary files differ. -<b>diff --git a/<a id="h17" href="../file/public_html/static/fonts/fonts/Terminus-Bold.ttf.html">public_html/static/fonts/fonts/Terminus-Bold.ttf</a> b/<a href="../file/public_html/static/fonts/fonts/Terminus-Bold.ttf.html">public_html/static/fonts/fonts/Terminus-Bold.ttf</a></b> -Binary files differ. -<b>diff --git a/<a id="h18" href="../file/public_html/static/fonts/fonts/Terminus-Italic.ttf.html">public_html/static/fonts/fonts/Terminus-Italic.ttf</a> b/<a href="../file/public_html/static/fonts/fonts/Terminus-Italic.ttf.html">public_html/static/fonts/fonts/Terminus-Italic.ttf</a></b> -Binary files differ. -<b>diff --git a/<a id="h19" href="../file/public_html/static/fonts/fonts/Terminus.ttf.html">public_html/static/fonts/fonts/Terminus.ttf</a> b/<a href="../file/public_html/static/fonts/fonts/Terminus.ttf.html">public_html/static/fonts/fonts/Terminus.ttf</a></b> -Binary files differ. -<b>diff --git a/<a id="h20" href="../file/public_html/static/fonts/fonts/lmmono10-italic.otf.html">public_html/static/fonts/fonts/lmmono10-italic.otf</a> b/<a href="../file/public_html/static/fonts/fonts/lmmono10-italic.otf.html">public_html/static/fonts/fonts/lmmono10-italic.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h21" href="../file/public_html/static/fonts/fonts/lmmono10-regular.otf.html">public_html/static/fonts/fonts/lmmono10-regular.otf</a> b/<a href="../file/public_html/static/fonts/fonts/lmmono10-regular.otf.html">public_html/static/fonts/fonts/lmmono10-regular.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h22" href="../file/public_html/static/fonts/fonts/roberta.ttf.html">public_html/static/fonts/fonts/roberta.ttf</a> b/<a href="../file/public_html/static/fonts/fonts/roberta.ttf.html">public_html/static/fonts/fonts/roberta.ttf</a></b> -Binary files differ. -<b>diff --git a/<a id="h23" href="../file/public_html/static/fonts/lmmono10-italic.otf.html">public_html/static/fonts/lmmono10-italic.otf</a> b/<a href="../file/public_html/static/fonts/lmmono10-italic.otf.html">public_html/static/fonts/lmmono10-italic.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h24" href="../file/public_html/static/fonts/lmmono10-regular.otf.html">public_html/static/fonts/lmmono10-regular.otf</a> b/<a href="../file/public_html/static/fonts/lmmono10-regular.otf.html">public_html/static/fonts/lmmono10-regular.otf</a></b> -Binary files differ. -<b>diff --git a/<a id="h25" href="../file/public_html/static/fonts/now.zip.html">public_html/static/fonts/now.zip</a> b/<a href="../file/public_html/static/fonts/now.zip.html">public_html/static/fonts/now.zip</a></b> -Binary files differ. -<b>diff --git a/<a id="h26" href="../file/public_html/static/fonts/roberta.ttf.html">public_html/static/fonts/roberta.ttf</a> b/<a href="../file/public_html/static/fonts/roberta.ttf.html">public_html/static/fonts/roberta.ttf</a></b> -Binary files differ. -<b>diff --git a/<a id="h27" href="../file/public_html/static/scrollcookie.js.html">public_html/static/scrollcookie.js</a> b/<a href="../file/public_html/static/scrollcookie.js.html">public_html/static/scrollcookie.js</a></b> -<a href="#h27-0" id="h27-0" class="h">@@ -0,0 +1,9 @@ -</a><a href="#h27-0-0" id="h27-0-0" class="i">+$(window).on(&quot;scroll&quot;, function() { -</a><a href="#h27-0-1" id="h27-0-1" class="i">+ $.cookie(&quot;tempScrollTop&quot;, $(window).scrollTop()); -</a><a href="#h27-0-2" id="h27-0-2" class="i">+}); -</a><a href="#h27-0-3" id="h27-0-3" class="i">+$(function() { -</a><a href="#h27-0-4" id="h27-0-4" class="i">+ if ($.cookie(&quot;tempScrollTop&quot;)) { -</a><a href="#h27-0-5" id="h27-0-5" class="i">+ $(window).scrollTop($.cookie(&quot;tempScrollTop&quot;)); -</a><a href="#h27-0-6" id="h27-0-6" class="i">+ alert(&quot;loaded postion : &quot; + $.cookie(&quot;tempScrollTop&quot;)); -</a><a href="#h27-0-7" id="h27-0-7" class="i">+ } -</a><a href="#h27-0-8" id="h27-0-8" class="i">+}); -</a></pre> -</div> -</body> -</html> diff --git a/public_html/static/git/commit/fa47ab78e071920bb57c203271b3b28595340324.html b/public_html/static/git/commit/fa47ab78e071920bb57c203271b3b28595340324.html @@ -1,541 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>werks - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../style.css" /> -</head> -<body> -<table><tr><td><a href="../../"><img src="../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../log.html">Log</a> | <a href="../files.html">Files</a> | <a href="../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<pre><b>commit</b> <a href="../commit/fa47ab78e071920bb57c203271b3b28595340324.html">fa47ab78e071920bb57c203271b3b28595340324</a> -<b>parent</b> <a href="../commit/6cebe6413cba1ca3d3267f60bb3b80f9ad1fb591.html">6cebe6413cba1ca3d3267f60bb3b80f9ad1fb591</a> -<b>Author:</b> rob &lt;<a href="mailto:rob@tarina.org">rob@tarina.org</a>&gt; -<b>Date:</b> Sat, 16 Oct 2021 08:17:51 +0300 - -werks - -<b>Diffstat:</b> -<table><tr><td class="A">A</td><td><a href="#h0">public_html/templates/base.html</a></td><td> | </td><td class="num">18</td><td><span class="i">++++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h1">public_html/templates/bigpic.html</a></td><td> | </td><td class="num">5</td><td><span class="i">+++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h2">public_html/templates/bitcoin.html</a></td><td> | </td><td class="num">6</td><td><span class="i">++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h3">public_html/templates/categories.html</a></td><td> | </td><td class="num">13</td><td><span class="i">+++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h4">public_html/templates/checkout.html</a></td><td> | </td><td class="num">29</td><td><span class="i">+++++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h5">public_html/templates/index.html</a></td><td> | </td><td class="num">64</td><td><span class="i">++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h6">public_html/templates/l33t.html</a></td><td> | </td><td class="num">14</td><td><span class="i">++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h7">public_html/templates/login.html</a></td><td> | </td><td class="num">13</td><td><span class="i">+++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h8">public_html/templates/op.html</a></td><td> | </td><td class="num">14</td><td><span class="i">++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h9">public_html/templates/operator.html</a></td><td> | </td><td class="num">4</td><td><span class="i">++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h10">public_html/templates/pay.html</a></td><td> | </td><td class="num">27</td><td><span class="i">+++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h11">public_html/templates/paybtc.html</a></td><td> | </td><td class="num">36</td><td><span class="i">++++++++++++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h12">public_html/templates/payln.html</a></td><td> | </td><td class="num">37</td><td><span class="i">+++++++++++++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h13">public_html/templates/payment.html</a></td><td> | </td><td class="num">27</td><td><span class="i">+++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h14">public_html/templates/payments.html</a></td><td> | </td><td class="num">33</td><td><span class="i">+++++++++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h15">public_html/templates/pending.html</a></td><td> | </td><td class="num">50</td><td><span class="i">++++++++++++++++++++++++++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h16">public_html/templates/products.html</a></td><td> | </td><td class="num">29</td><td><span class="i">+++++++++++++++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h17">public_html/templates/shipping.html</a></td><td> | </td><td class="num">16</td><td><span class="i">++++++++++++++++</span><span class="d"></span></td></tr> -<tr><td class="A">A</td><td><a href="#h18">public_html/templates/thankyou.html</a></td><td> | </td><td class="num">19</td><td><span class="i">+++++++++++++++++++</span><span class="d"></span></td></tr> -</table></pre><pre>19 files changed, 454 insertions(+), 0 deletions(-) -<hr/><b>diff --git a/<a id="h0" href="../file/public_html/templates/base.html.html">public_html/templates/base.html</a> b/<a href="../file/public_html/templates/base.html.html">public_html/templates/base.html</a></b> -<a href="#h0-0" id="h0-0" class="h">@@ -0,0 +1,18 @@ -</a><a href="#h0-0-0" id="h0-0-0" class="i">+$def with (content) -</a><a href="#h0-0-1" id="h0-0-1" class="i">+&lt;!doctype html&gt; -</a><a href="#h0-0-2" id="h0-0-2" class="i">+&lt;HEAD&gt; -</a><a href="#h0-0-3" id="h0-0-3" class="i">+ &lt;meta charset=&quot;utf-8&quot;&gt; -</a><a href="#h0-0-4" id="h0-0-4" class="i">+ &lt;title&gt;Get Da Fuck Outta Here | buy good shit on the internet&lt;/title&gt; -</a><a href="#h0-0-5" id="h0-0-5" class="i">+ &lt;link rel=&quot;stylesheet&quot; href=&quot;/static/style.css?v=2.0&quot; type=&quot;text/css&quot; rel=&quot;stylesheet&quot;/&gt; -</a><a href="#h0-0-6" id="h0-0-6" class="i">+ &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt; -</a><a href="#h0-0-7" id="h0-0-7" class="i">+ &lt;meta http-equiv=&quot;cache-control&quot; content=&quot;no-cache&quot;&gt; -</a><a href="#h0-0-8" id="h0-0-8" class="i">+&lt;/HEAD&gt; -</a><a href="#h0-0-9" id="h0-0-9" class="i">+&lt;BODY&gt; -</a><a href="#h0-0-10" id="h0-0-10" class="i">+ -</a><a href="#h0-0-11" id="h0-0-11" class="i">+&lt;div id=&quot;container&quot;&gt; -</a><a href="#h0-0-12" id="h0-0-12" class="i">+ $:content -</a><a href="#h0-0-13" id="h0-0-13" class="i">+&lt;/div&gt; -</a><a href="#h0-0-14" id="h0-0-14" class="i">+ -</a><a href="#h0-0-15" id="h0-0-15" class="i">+&lt;script type=&quot;text/javascript&quot; src=&quot;/static/scrollcookie.js&quot;&gt;&lt;/script&gt; -</a><a href="#h0-0-16" id="h0-0-16" class="i">+ -</a><a href="#h0-0-17" id="h0-0-17" class="i">+&lt;/BODY&gt; -</a><b>diff --git a/<a id="h1" href="../file/public_html/templates/bigpic.html.html">public_html/templates/bigpic.html</a> b/<a href="../file/public_html/templates/bigpic.html.html">public_html/templates/bigpic.html</a></b> -<a href="#h1-0" id="h1-0" class="h">@@ -0,0 +1,5 @@ -</a><a href="#h1-0-0" id="h1-0-0" class="i">+$def with (p, product) -</a><a href="#h1-0-1" id="h1-0-1" class="i">+ -</a><a href="#h1-0-2" id="h1-0-2" class="i">+&lt;a href=&quot;/#$product&quot;&gt;&lt;-- back&lt;/a&gt; -</a><a href="#h1-0-3" id="h1-0-3" class="i">+&lt;a href=&quot;/#$product&quot;&gt;&lt;img src=&quot;/static/img/$product/web/$p&quot; style=&quot;width:100%;&quot;&gt;&lt;/a&gt; -</a><a href="#h1-0-4" id="h1-0-4" class="i">+ -</a><b>diff --git a/<a id="h2" href="../file/public_html/templates/bitcoin.html.html">public_html/templates/bitcoin.html</a> b/<a href="../file/public_html/templates/bitcoin.html.html">public_html/templates/bitcoin.html</a></b> -<a href="#h2-0" id="h2-0" class="h">@@ -0,0 +1,6 @@ -</a><a href="#h2-0-0" id="h2-0-0" class="i">+$def with (wallet) -</a><a href="#h2-0-1" id="h2-0-1" class="i">+ -</a><a href="#h2-0-2" id="h2-0-2" class="i">+$for i in wallet: -</a><a href="#h2-0-3" id="h2-0-3" class="i">+ $i -</a><a href="#h2-0-4" id="h2-0-4" class="i">+ $wallet[i] -</a><a href="#h2-0-5" id="h2-0-5" class="i">+ -</a><b>diff --git a/<a id="h3" href="../file/public_html/templates/categories.html.html">public_html/templates/categories.html</a> b/<a href="../file/public_html/templates/categories.html.html">public_html/templates/categories.html</a></b> -<a href="#h3-0" id="h3-0" class="h">@@ -0,0 +1,13 @@ -</a><a href="#h3-0-0" id="h3-0-0" class="i">+$def with (listcategories, addcategory) -</a><a href="#h3-0-1" id="h3-0-1" class="i">+&lt;div id=&quot;container&quot;&gt; -</a><a href="#h3-0-2" id="h3-0-2" class="i">+&lt;div id=&quot;default&quot;&gt; -</a><a href="#h3-0-3" id="h3-0-3" class="i">+&lt;br&gt; -</a><a href="#h3-0-4" id="h3-0-4" class="i">+$for i in listcategories: -</a><a href="#h3-0-5" id="h3-0-5" class="i">+ &lt;a href=&#39;/categories?delete=$i.id&#39;&gt;$i.category&lt;/a&gt; -</a><a href="#h3-0-6" id="h3-0-6" class="i">+&lt;div id=&quot;addevent&quot;&gt; -</a><a href="#h3-0-7" id="h3-0-7" class="i">+&lt;form method=&quot;POST&quot;&gt; -</a><a href="#h3-0-8" id="h3-0-8" class="i">+$:addcategory.render() -</a><a href="#h3-0-9" id="h3-0-9" class="i">+&lt;/form&gt; -</a><a href="#h3-0-10" id="h3-0-10" class="i">+&lt;/div&gt; -</a><a href="#h3-0-11" id="h3-0-11" class="i">+&lt;/div&gt; -</a><a href="#h3-0-12" id="h3-0-12" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h4" href="../file/public_html/templates/checkout.html.html">public_html/templates/checkout.html</a> b/<a href="../file/public_html/templates/checkout.html.html">public_html/templates/checkout.html</a></b> -<a href="#h4-0" id="h4-0" class="h">@@ -0,0 +1,29 @@ -</a><a href="#h4-0-0" id="h4-0-0" class="i">+$def with (checkoutform, bag, b, productname, float) -</a><a href="#h4-0-1" id="h4-0-1" class="i">+$ tot = 0 -</a><a href="#h4-0-2" id="h4-0-2" class="i">+&lt;div id=&quot;container&quot;&gt; -</a><a href="#h4-0-3" id="h4-0-3" class="i">+&lt;div id=&quot;default&quot;&gt; -</a><a href="#h4-0-4" id="h4-0-4" class="i">+&lt;h2&gt;Checkout&lt;/h2&gt; -</a><a href="#h4-0-5" id="h4-0-5" class="i">+$if bag != []: -</a><a href="#h4-0-6" id="h4-0-6" class="i">+ in your order (click to remove): -</a><a href="#h4-0-7" id="h4-0-7" class="i">+ $for i in bag: -</a><a href="#h4-0-8" id="h4-0-8" class="i">+ $code: -</a><a href="#h4-0-9" id="h4-0-9" class="i">+ price = i.quantity * float(i.price/100) -</a><a href="#h4-0-10" id="h4-0-10" class="i">+ &lt;a href=&quot;/dropitem/$i.product&quot;&gt;$i.quantity x $productname(i.product)&lt;/a&gt; $price&amp;euro;&lt;br&gt; -</a><a href="#h4-0-11" id="h4-0-11" class="i">+ &lt;img src=&quot;/static/img/$i.product/thumb/000.jpeg&quot; style=&quot;width:120px&quot;&gt;&lt;br&gt; -</a><a href="#h4-0-12" id="h4-0-12" class="i">+ $code: -</a><a href="#h4-0-13" id="h4-0-13" class="i">+ tot += price -</a><a href="#h4-0-14" id="h4-0-14" class="i">+$if tot &gt; 0: -</a><a href="#h4-0-15" id="h4-0-15" class="i">+ &lt;br&gt; -</a><a href="#h4-0-16" id="h4-0-16" class="i">+ total: $(tot)&amp;euro; or in real money $int(b.convert_to_btc(tot, &#39;EUR&#39;) * 100000000) Satoshi -</a><a href="#h4-0-17" id="h4-0-17" class="i">+&lt;br&gt; -</a><a href="#h4-0-18" id="h4-0-18" class="i">+Order is only reserved once checkout done. -</a><a href="#h4-0-19" id="h4-0-19" class="i">+&lt;br&gt; -</a><a href="#h4-0-20" id="h4-0-20" class="i">+&lt;div id=&quot;addevent&quot;&gt; -</a><a href="#h4-0-21" id="h4-0-21" class="i">+&lt;form method=&quot;POST&quot;&gt; -</a><a href="#h4-0-22" id="h4-0-22" class="i">+$:checkoutform.render() -</a><a href="#h4-0-23" id="h4-0-23" class="i">+&lt;/form&gt; -</a><a href="#h4-0-24" id="h4-0-24" class="i">+&lt;/div&gt; -</a><a href="#h4-0-25" id="h4-0-25" class="i">+&lt;b&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt; -</a><a href="#h4-0-26" id="h4-0-26" class="i">+&lt;/div&gt; -</a><a href="#h4-0-27" id="h4-0-27" class="i">+&lt;/div&gt; -</a><a href="#h4-0-28" id="h4-0-28" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h5" href="../file/public_html/templates/index.html.html">public_html/templates/index.html</a> b/<a href="../file/public_html/templates/index.html.html">public_html/templates/index.html</a></b> -<a href="#h5-0" id="h5-0" class="h">@@ -0,0 +1,64 @@ -</a><a href="#h5-0-0" id="h5-0-0" class="i">+$def with (products, b, bag, str, int, float, sessionkey, productname) -</a><a href="#h5-0-1" id="h5-0-1" class="i">+$ tot = 0 -</a><a href="#h5-0-2" id="h5-0-2" class="i">+$ x = 0 -</a><a href="#h5-0-3" id="h5-0-3" class="i">+ -</a><a href="#h5-0-4" id="h5-0-4" class="i">+&lt;div id=&quot;logocontainer&quot;&gt; -</a><a href="#h5-0-5" id="h5-0-5" class="i">+&lt;div id=&quot;logo2&quot;&gt; -</a><a href="#h5-0-6" id="h5-0-6" class="i">+&lt;img class=&quot;logo&quot; src=&quot;/static/logo.png&quot;&gt; -</a><a href="#h5-0-7" id="h5-0-7" class="i">+&lt;/div&gt; -</a><a href="#h5-0-8" id="h5-0-8" class="i">+&lt;div id=&quot;logo&quot;&gt; -</a><a href="#h5-0-9" id="h5-0-9" class="i">+&lt;h1&gt;GETDA&lt;br&gt;FUCK&lt;br&gt;OUTTA&lt;br&gt;HERE&lt;/h1&gt; -</a><a href="#h5-0-10" id="h5-0-10" class="i">+&lt;/div&gt; -</a><a href="#h5-0-11" id="h5-0-11" class="i">+&lt;p&gt;Good Old Shit Shop&lt;/p&gt; -</a><a href="#h5-0-12" id="h5-0-12" class="i">+&lt;/div&gt; -</a><a href="#h5-0-13" id="h5-0-13" class="i">+&lt;br&gt; -</a><a href="#h5-0-14" id="h5-0-14" class="i">+ -</a><a href="#h5-0-15" id="h5-0-15" class="i">+&lt;div id=&quot;productlist&quot;&gt; -</a><a href="#h5-0-16" id="h5-0-16" class="i">+$for i in products: -</a><a href="#h5-0-17" id="h5-0-17" class="i">+ &lt;div class=&quot;dashiit&quot; id=&quot;$i.id&quot;&gt; -</a><a href="#h5-0-18" id="h5-0-18" class="i">+ $code: -</a><a href="#h5-0-19" id="h5-0-19" class="i">+ sat = str(int(b.convert_to_btc(i.price/100, &#39;EUR&#39;) * 100000000)) -</a><a href="#h5-0-20" id="h5-0-20" class="i">+ &lt;h2&gt; -</a><a href="#h5-0-21" id="h5-0-21" class="i">+ $i.name -</a><a href="#h5-0-22" id="h5-0-22" class="i">+ &lt;/h2&gt; -</a><a href="#h5-0-23" id="h5-0-23" class="i">+ &lt;p&gt;$i.description&lt;/p&gt; -</a><a href="#h5-0-24" id="h5-0-24" class="i">+ $for p in i.images: -</a><a href="#h5-0-25" id="h5-0-25" class="i">+ &lt;a href=&quot;/bigpic/$i.id?pic=$p&quot;&gt;&lt;img src=&quot;/static/img/$i.id/thumb/$p&quot;&gt;&lt;/a&gt; -</a><a href="#h5-0-26" id="h5-0-26" class="i">+ &lt;br&gt; -</a><a href="#h5-0-27" id="h5-0-27" class="i">+ $if i.available &gt; 0: -</a><a href="#h5-0-28" id="h5-0-28" class="i">+ Price $sat Satoshi ~ $(&quot;%1.2f&quot; % float(i.price/100))&amp;euro; &lt;a href=&quot;?putinbag=$i.id#$i.id&quot;&gt;order&lt;/a&gt;&lt;br&gt; -</a><a href="#h5-0-29" id="h5-0-29" class="i">+ Available $str(i.available) pcs -</a><a href="#h5-0-30" id="h5-0-30" class="i">+ $else: -</a><a href="#h5-0-31" id="h5-0-31" class="i">+ SOLD OUT! check back later. -</a><a href="#h5-0-32" id="h5-0-32" class="i">+ &lt;/div&gt; -</a><a href="#h5-0-33" id="h5-0-33" class="i">+ &lt;br&gt; -</a><a href="#h5-0-34" id="h5-0-34" class="i">+ &lt;small&gt;~-~&lt;/small&gt; -</a><a href="#h5-0-35" id="h5-0-35" class="i">+ &lt;br&gt; -</a><a href="#h5-0-36" id="h5-0-36" class="i">+&lt;/div&gt; -</a><a href="#h5-0-37" id="h5-0-37" class="i">+&lt;p&gt;&lt;/p&gt; -</a><a href="#h5-0-38" id="h5-0-38" class="i">+&lt;h3&gt;rate is $int(b.get_latest_price(&#39;EUR&#39;))&amp;euro;/btc&lt;/h4&gt; -</a><a href="#h5-0-39" id="h5-0-39" class="i">+&lt;small&gt;powered by &lt;a href=&quot;https://github.com/ElementsProject/lightning&quot;&gt;c-lightning&lt;/a&gt;, &lt;a href=&quot;https://github.com/ElementsProject/lightning-charge&quot;&gt;lightning-charge&lt;/a&gt; and &lt;a href=&quot;https://webpy.org&quot;&gt;web.py &lt;/a&gt;&lt;/small&gt; -</a><a href="#h5-0-40" id="h5-0-40" class="i">+&lt;br&gt; -</a><a href="#h5-0-41" id="h5-0-41" class="i">+&lt;br&gt; -</a><a href="#h5-0-42" id="h5-0-42" class="i">+&lt;br&gt; -</a><a href="#h5-0-43" id="h5-0-43" class="i">+&lt;br&gt; -</a><a href="#h5-0-44" id="h5-0-44" class="i">+&lt;br&gt; -</a><a href="#h5-0-45" id="h5-0-45" class="i">+&lt;br&gt; -</a><a href="#h5-0-46" id="h5-0-46" class="i">+&lt;br&gt; -</a><a href="#h5-0-47" id="h5-0-47" class="i">+&lt;div id=&quot;bag&quot;&gt; -</a><a href="#h5-0-48" id="h5-0-48" class="i">+$if bag != []: -</a><a href="#h5-0-49" id="h5-0-49" class="i">+ &lt;div id=&quot;insidebag&quot;&gt; -</a><a href="#h5-0-50" id="h5-0-50" class="i">+ in your order (click to remove): -</a><a href="#h5-0-51" id="h5-0-51" class="i">+ $for i in bag: -</a><a href="#h5-0-52" id="h5-0-52" class="i">+ $code: -</a><a href="#h5-0-53" id="h5-0-53" class="i">+ price = i.quantity * float(i.price/100) -</a><a href="#h5-0-54" id="h5-0-54" class="i">+ $#&lt;img src=&quot;/static/img/$i.product/thumb/000.jpeg&quot; style=&quot;width:50px&quot;&gt; -</a><a href="#h5-0-55" id="h5-0-55" class="i">+ &lt;a href=&quot;/dropitem/$i.product&quot;&gt;$i.quantity x $productname(i.product)&lt;/a&gt; $price&amp;euro; | -</a><a href="#h5-0-56" id="h5-0-56" class="i">+ $code: -</a><a href="#h5-0-57" id="h5-0-57" class="i">+ tot += price -</a><a href="#h5-0-58" id="h5-0-58" class="i">+$if tot &gt; 0: -</a><a href="#h5-0-59" id="h5-0-59" class="i">+ &lt;br&gt; -</a><a href="#h5-0-60" id="h5-0-60" class="i">+ total: $(tot)&amp;euro; or in real money $int(b.convert_to_btc(tot, &#39;EUR&#39;) * 100000000) Satoshi -</a><a href="#h5-0-61" id="h5-0-61" class="i">+ &lt;a href=&quot;/checkout/&quot;&gt;Checkout&lt;/a&gt; -</a><a href="#h5-0-62" id="h5-0-62" class="i">+ &lt;/div&gt; -</a><a href="#h5-0-63" id="h5-0-63" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h6" href="../file/public_html/templates/l33t.html.html">public_html/templates/l33t.html</a> b/<a href="../file/public_html/templates/l33t.html.html">public_html/templates/l33t.html</a></b> -<a href="#h6-0" id="h6-0" class="h">@@ -0,0 +1,14 @@ -</a><a href="#h6-0-0" id="h6-0-0" class="i">+$def with (addproduct) -</a><a href="#h6-0-1" id="h6-0-1" class="i">+&lt;div id=&quot;container&quot;&gt; -</a><a href="#h6-0-2" id="h6-0-2" class="i">+ &lt;div id=&quot;default&quot;&gt; -</a><a href="#h6-0-3" id="h6-0-3" class="i">+ &lt;br&gt; -</a><a href="#h6-0-4" id="h6-0-4" class="i">+ &lt;h2&gt;Add Product&lt;/h2&gt; -</a><a href="#h6-0-5" id="h6-0-5" class="i">+ &lt;div id=&quot;addevent&quot;&gt; -</a><a href="#h6-0-6" id="h6-0-6" class="i">+ &lt;form method=&quot;POST&quot;&gt; -</a><a href="#h6-0-7" id="h6-0-7" class="i">+ $:addproduct.render() -</a><a href="#h6-0-8" id="h6-0-8" class="i">+ &lt;/form&gt; -</a><a href="#h6-0-9" id="h6-0-9" class="i">+ &lt;/div&gt; -</a><a href="#h6-0-10" id="h6-0-10" class="i">+ &lt;b&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt; -</a><a href="#h6-0-11" id="h6-0-11" class="i">+ &lt;/div&gt; -</a><a href="#h6-0-12" id="h6-0-12" class="i">+ &lt;/div&gt; -</a><a href="#h6-0-13" id="h6-0-13" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h7" href="../file/public_html/templates/login.html.html">public_html/templates/login.html</a> b/<a href="../file/public_html/templates/login.html.html">public_html/templates/login.html</a></b> -<a href="#h7-0" id="h7-0" class="h">@@ -0,0 +1,13 @@ -</a><a href="#h7-0-0" id="h7-0-0" class="i">+$def with (loginform) -</a><a href="#h7-0-1" id="h7-0-1" class="i">+&lt;div id=&quot;container&quot;&gt; -</a><a href="#h7-0-2" id="h7-0-2" class="i">+ &lt;div id=&quot;default&quot;&gt; -</a><a href="#h7-0-3" id="h7-0-3" class="i">+ &lt;br&gt; -</a><a href="#h7-0-4" id="h7-0-4" class="i">+ &lt;div id=&quot;addevent&quot;&gt; -</a><a href="#h7-0-5" id="h7-0-5" class="i">+ &lt;form method=&quot;POST&quot;&gt; -</a><a href="#h7-0-6" id="h7-0-6" class="i">+ $:loginform.render() -</a><a href="#h7-0-7" id="h7-0-7" class="i">+ &lt;/form&gt; -</a><a href="#h7-0-8" id="h7-0-8" class="i">+ &lt;/div&gt; -</a><a href="#h7-0-9" id="h7-0-9" class="i">+ &lt;b&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt; -</a><a href="#h7-0-10" id="h7-0-10" class="i">+ &lt;/div&gt; -</a><a href="#h7-0-11" id="h7-0-11" class="i">+ &lt;/div&gt; -</a><a href="#h7-0-12" id="h7-0-12" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h8" href="../file/public_html/templates/op.html.html">public_html/templates/op.html</a> b/<a href="../file/public_html/templates/op.html.html">public_html/templates/op.html</a></b> -<a href="#h8-0" id="h8-0" class="h">@@ -0,0 +1,14 @@ -</a><a href="#h8-0-0" id="h8-0-0" class="i">+$def with (content) -</a><a href="#h8-0-1" id="h8-0-1" class="i">+&lt;!doctype html&gt; -</a><a href="#h8-0-2" id="h8-0-2" class="i">+&lt;HEAD&gt; -</a><a href="#h8-0-3" id="h8-0-3" class="i">+ &lt;meta charset=&quot;utf-8&quot;&gt; -</a><a href="#h8-0-4" id="h8-0-4" class="i">+ &lt;title&gt;TARINA | the filmmaking device&lt;/title&gt; -</a><a href="#h8-0-5" id="h8-0-5" class="i">+ &lt;link rel=&quot;stylesheet&quot; href=&quot;/static/style.css&quot; type=&quot;text/css&quot; rel=&quot;stylesheet&quot;/&gt; -</a><a href="#h8-0-6" id="h8-0-6" class="i">+ &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt; -</a><a href="#h8-0-7" id="h8-0-7" class="i">+&lt;/HEAD&gt; -</a><a href="#h8-0-8" id="h8-0-8" class="i">+&lt;BODY&gt; -</a><a href="#h8-0-9" id="h8-0-9" class="i">+ &lt;a href=&quot;/categories&quot;&gt;Categories&lt;/a&gt; | &lt;a href=&quot;/products/&quot;&gt;Products&lt;/a&gt; | &lt;a href=&quot;/shipping/&quot;&gt;Shipping&lt;/a&gt; | &lt;a href=&quot;/payments&quot;&gt;Payments&lt;/a&gt; | &lt;a href=&quot;/logout&quot;&gt;Logout&lt;/a&gt; -</a><a href="#h8-0-10" id="h8-0-10" class="i">+&lt;div id=&quot;container&quot;&gt; -</a><a href="#h8-0-11" id="h8-0-11" class="i">+ $:content -</a><a href="#h8-0-12" id="h8-0-12" class="i">+&lt;/div&gt; -</a><a href="#h8-0-13" id="h8-0-13" class="i">+&lt;/BODY&gt; -</a><b>diff --git a/<a id="h9" href="../file/public_html/templates/operator.html.html">public_html/templates/operator.html</a> b/<a href="../file/public_html/templates/operator.html.html">public_html/templates/operator.html</a></b> -<a href="#h9-0" id="h9-0" class="h">@@ -0,0 +1,4 @@ -</a><a href="#h9-0-0" id="h9-0-0" class="i">+&lt;div id=&quot;container&quot;&gt; -</a><a href="#h9-0-1" id="h9-0-1" class="i">+&lt;div id=&quot;default&quot;&gt; -</a><a href="#h9-0-2" id="h9-0-2" class="i">+&lt;/div&gt; -</a><a href="#h9-0-3" id="h9-0-3" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h10" href="../file/public_html/templates/pay.html.html">public_html/templates/pay.html</a> b/<a href="../file/public_html/templates/pay.html.html">public_html/templates/pay.html</a></b> -<a href="#h10-0" id="h10-0" class="h">@@ -0,0 +1,27 @@ -</a><a href="#h10-0-0" id="h10-0-0" class="i">+$def with (invoice) -</a><a href="#h10-0-1" id="h10-0-1" class="i">+$ qr = &#39;/static/qr/&#39; + invoice[&#39;id&#39;] + &#39;.png&#39; -</a><a href="#h10-0-2" id="h10-0-2" class="i">+&lt;script&gt; -</a><a href="#h10-0-3" id="h10-0-3" class="i">+function copy() { -</a><a href="#h10-0-4" id="h10-0-4" class="i">+ let textarea = document.getElementById(&quot;payreq&quot;); -</a><a href="#h10-0-5" id="h10-0-5" class="i">+ textarea.select(); -</a><a href="#h10-0-6" id="h10-0-6" class="i">+ document.execCommand(&quot;copy&quot;); -</a><a href="#h10-0-7" id="h10-0-7" class="i">+} -</a><a href="#h10-0-8" id="h10-0-8" class="i">+&lt;/script&gt; -</a><a href="#h10-0-9" id="h10-0-9" class="i">+&lt;meta http-equiv=&quot;refresh&quot; content=&quot;5&quot; /&gt; -</a><a href="#h10-0-10" id="h10-0-10" class="i">+&lt;br&gt; -</a><a href="#h10-0-11" id="h10-0-11" class="i">+&lt;h2&gt;$invoice[&#39;description&#39;]&lt;br&gt;$invoice[&#39;msatoshi&#39;] msat, $invoice[&#39;quoted_amount&#39;] $invoice[&#39;quoted_currency&#39;]&lt;/h2&gt; -</a><a href="#h10-0-12" id="h10-0-12" class="i">+&lt;br&gt; -</a><a href="#h10-0-13" id="h10-0-13" class="i">+&lt;img src=&quot;$qr&quot;&gt; -</a><a href="#h10-0-14" id="h10-0-14" class="i">+&lt;div id=&#39;hash&#39;&gt; -</a><a href="#h10-0-15" id="h10-0-15" class="i">+&lt;h4&gt;id:&lt;/h4&gt; -</a><a href="#h10-0-16" id="h10-0-16" class="i">+&lt;textarea id=&#39;payid&#39;&gt; -</a><a href="#h10-0-17" id="h10-0-17" class="i">+$invoice[&#39;id&#39;] -</a><a href="#h10-0-18" id="h10-0-18" class="i">+&lt;/textarea&gt; -</a><a href="#h10-0-19" id="h10-0-19" class="i">+&lt;h4&gt;pay req:&lt;/h4&gt; -</a><a href="#h10-0-20" id="h10-0-20" class="i">+&lt;textarea id=&#39;payreq&#39;&gt; -</a><a href="#h10-0-21" id="h10-0-21" class="i">+$invoice[&#39;payreq&#39;] -</a><a href="#h10-0-22" id="h10-0-22" class="i">+&lt;/textarea&gt; -</a><a href="#h10-0-23" id="h10-0-23" class="i">+&lt;br&gt; -</a><a href="#h10-0-24" id="h10-0-24" class="i">+&lt;button id=&quot;copybutton&quot; onclick=&quot;copy()&quot;&gt;Copy&lt;/button&gt; -</a><a href="#h10-0-25" id="h10-0-25" class="i">+&lt;button id=&quot;backbutton&quot; autofocus onclick=&quot;parent.location=&#39;/&#39;&quot;&gt;Back&lt;/button&gt; -</a><a href="#h10-0-26" id="h10-0-26" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h11" href="../file/public_html/templates/paybtc.html.html">public_html/templates/paybtc.html</a> b/<a href="../file/public_html/templates/paybtc.html.html">public_html/templates/paybtc.html</a></b> -<a href="#h11-0" id="h11-0" class="h">@@ -0,0 +1,36 @@ -</a><a href="#h11-0-0" id="h11-0-0" class="i">+$def with (invoice, btcaddress, btcuri, showpayment) -</a><a href="#h11-0-1" id="h11-0-1" class="i">+$ qr = &#39;/static/qr/&#39; + btcaddress + &#39;.png&#39; -</a><a href="#h11-0-2" id="h11-0-2" class="i">+&lt;script&gt; -</a><a href="#h11-0-3" id="h11-0-3" class="i">+function copy() { -</a><a href="#h11-0-4" id="h11-0-4" class="i">+ let textarea = document.getElementById(&quot;payreq&quot;); -</a><a href="#h11-0-5" id="h11-0-5" class="i">+ textarea.select(); -</a><a href="#h11-0-6" id="h11-0-6" class="i">+ document.execCommand(&quot;copy&quot;); -</a><a href="#h11-0-7" id="h11-0-7" class="i">+} -</a><a href="#h11-0-8" id="h11-0-8" class="i">+&lt;/script&gt; -</a><a href="#h11-0-9" id="h11-0-9" class="i">+&lt;meta http-equiv=&quot;refresh&quot; content=&quot;60&quot; /&gt; -</a><a href="#h11-0-10" id="h11-0-10" class="i">+&lt;br&gt; -</a><a href="#h11-0-11" id="h11-0-11" class="i">+&lt;h3&gt;$invoice.products&lt;/h3&gt; -</a><a href="#h11-0-12" id="h11-0-12" class="i">+&lt;h3&gt;$float(invoice.amount/100)&amp;euro;&lt;/h3&gt; -</a><a href="#h11-0-13" id="h11-0-13" class="i">+&lt;h3&gt;$invoice.totsats Satoshi&lt;/h3&gt; -</a><a href="#h11-0-14" id="h11-0-14" class="i">+$if showpayment == []: -</a><a href="#h11-0-15" id="h11-0-15" class="i">+ &lt;h3&gt;Status: not paid&lt;/h3&gt; -</a><a href="#h11-0-16" id="h11-0-16" class="i">+$else: -</a><a href="#h11-0-17" id="h11-0-17" class="i">+ $for i in showpayment: -</a><a href="#h11-0-18" id="h11-0-18" class="i">+ &lt;h4&gt;Status:&lt;/h4&gt; -</a><a href="#h11-0-19" id="h11-0-19" class="i">+ &lt;h4&gt;txid: $i[&#39;txids&#39;]&lt;/h4&gt; -</a><a href="#h11-0-20" id="h11-0-20" class="i">+ &lt;h4&gt;confirmations: $i[&#39;confirmations&#39;]&lt;/h4&gt; -</a><a href="#h11-0-21" id="h11-0-21" class="i">+&lt;br&gt; -</a><a href="#h11-0-22" id="h11-0-22" class="i">+&lt;img src=&quot;$qr&quot;&gt; -</a><a href="#h11-0-23" id="h11-0-23" class="i">+&lt;div id=&#39;hash&#39;&gt; -</a><a href="#h11-0-24" id="h11-0-24" class="i">+&lt;h4&gt;bitcoin address:&lt;/h4&gt; -</a><a href="#h11-0-25" id="h11-0-25" class="i">+&lt;textarea id=&#39;payid&#39;&gt; -</a><a href="#h11-0-26" id="h11-0-26" class="i">+$btcaddress -</a><a href="#h11-0-27" id="h11-0-27" class="i">+&lt;/textarea&gt; -</a><a href="#h11-0-28" id="h11-0-28" class="i">+&lt;h4&gt;pay uri:&lt;/h4&gt; -</a><a href="#h11-0-29" id="h11-0-29" class="i">+&lt;textarea id=&#39;payreq&#39;&gt; -</a><a href="#h11-0-30" id="h11-0-30" class="i">+$btcuri -</a><a href="#h11-0-31" id="h11-0-31" class="i">+&lt;/textarea&gt; -</a><a href="#h11-0-32" id="h11-0-32" class="i">+&lt;br&gt; -</a><a href="#h11-0-33" id="h11-0-33" class="i">+&lt;button id=&quot;copybutton&quot; onclick=&quot;copy()&quot;&gt;Copy&lt;/button&gt; -</a><a href="#h11-0-34" id="h11-0-34" class="i">+&lt;button id=&quot;backbutton&quot; autofocus onclick=&quot;parent.location=&#39;/payln/$invoice.invoice_key&#39;&quot;&gt;Pay with Lightning&lt;/button&gt; -</a><a href="#h11-0-35" id="h11-0-35" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h12" href="../file/public_html/templates/payln.html.html">public_html/templates/payln.html</a> b/<a href="../file/public_html/templates/payln.html.html">public_html/templates/payln.html</a></b> -<a href="#h12-0" id="h12-0" class="h">@@ -0,0 +1,37 @@ -</a><a href="#h12-0-0" id="h12-0-0" class="i">+$def with (lninvoice, invoice, bag, productname, float) -</a><a href="#h12-0-1" id="h12-0-1" class="i">+$ qr = &#39;/static/qr/&#39; + lninvoice[&#39;id&#39;] + &#39;.png&#39; -</a><a href="#h12-0-2" id="h12-0-2" class="i">+&lt;script&gt; -</a><a href="#h12-0-3" id="h12-0-3" class="i">+function copy() { -</a><a href="#h12-0-4" id="h12-0-4" class="i">+ let textarea = document.getElementById(&quot;payreq&quot;); -</a><a href="#h12-0-5" id="h12-0-5" class="i">+ textarea.select(); -</a><a href="#h12-0-6" id="h12-0-6" class="i">+ document.execCommand(&quot;copy&quot;); -</a><a href="#h12-0-7" id="h12-0-7" class="i">+} -</a><a href="#h12-0-8" id="h12-0-8" class="i">+&lt;/script&gt; -</a><a href="#h12-0-9" id="h12-0-9" class="i">+&lt;meta http-equiv=&quot;refresh&quot; content=&quot;60&quot; /&gt; -</a><a href="#h12-0-10" id="h12-0-10" class="i">+&lt;h2&gt;Pay with Bitcoin Lightning&lt;/h2&gt; -</a><a href="#h12-0-11" id="h12-0-11" class="i">+in your order (click to remove):&lt;br&gt; -</a><a href="#h12-0-12" id="h12-0-12" class="i">+$for i in bag: -</a><a href="#h12-0-13" id="h12-0-13" class="i">+ $code: -</a><a href="#h12-0-14" id="h12-0-14" class="i">+ price = i.quantity * float(i.price/100) -</a><a href="#h12-0-15" id="h12-0-15" class="i">+ &lt;a href=&quot;/dropitem/$i.product&quot;&gt;$i.quantity x $productname(i.product)&lt;/a&gt; $price&amp;euro; &lt;br&gt; -</a><a href="#h12-0-16" id="h12-0-16" class="i">+ &lt;img src=&quot;/static/img/$i.product/thumb/000.jpeg&quot; style=&quot;width:120px&quot;&gt;&lt;br&gt; -</a><a href="#h12-0-17" id="h12-0-17" class="i">+ -</a><a href="#h12-0-18" id="h12-0-18" class="i">+&lt;h3&gt;$float(invoice.amount/100)&amp;euro;&lt;/h3&gt; -</a><a href="#h12-0-19" id="h12-0-19" class="i">+&lt;h3&gt;$invoice.totsats Satoshi&lt;/h3&gt; -</a><a href="#h12-0-20" id="h12-0-20" class="i">+&lt;h3&gt;$lninvoice[&#39;quoted_currency&#39;]&lt;/h3&gt; -</a><a href="#h12-0-21" id="h12-0-21" class="i">+&lt;h3&gt;$lninvoice[&#39;status&#39;]&lt;/h3&gt; -</a><a href="#h12-0-22" id="h12-0-22" class="i">+&lt;br&gt; -</a><a href="#h12-0-23" id="h12-0-23" class="i">+&lt;img src=&quot;$qr&quot;&gt; -</a><a href="#h12-0-24" id="h12-0-24" class="i">+&lt;div id=&#39;hash&#39;&gt; -</a><a href="#h12-0-25" id="h12-0-25" class="i">+&lt;h4&gt;id:&lt;/h4&gt; -</a><a href="#h12-0-26" id="h12-0-26" class="i">+&lt;textarea id=&#39;payid&#39;&gt; -</a><a href="#h12-0-27" id="h12-0-27" class="i">+$lninvoice[&#39;id&#39;] -</a><a href="#h12-0-28" id="h12-0-28" class="i">+&lt;/textarea&gt; -</a><a href="#h12-0-29" id="h12-0-29" class="i">+&lt;h4&gt;pay req:&lt;/h4&gt; -</a><a href="#h12-0-30" id="h12-0-30" class="i">+&lt;textarea id=&#39;payreq&#39;&gt; -</a><a href="#h12-0-31" id="h12-0-31" class="i">+$lninvoice[&#39;payreq&#39;] -</a><a href="#h12-0-32" id="h12-0-32" class="i">+&lt;/textarea&gt; -</a><a href="#h12-0-33" id="h12-0-33" class="i">+&lt;br&gt; -</a><a href="#h12-0-34" id="h12-0-34" class="i">+&lt;button id=&quot;copybutton&quot; onclick=&quot;copy()&quot;&gt;Copy&lt;/button&gt; -</a><a href="#h12-0-35" id="h12-0-35" class="i">+&lt;button id=&quot;backbutton&quot; autofocus onclick=&quot;parent.location=&#39;/paybtc/$invoice.invoice_key&#39;&quot;&gt;Pay with Bitcoin on-chain&lt;/button&gt; -</a><a href="#h12-0-36" id="h12-0-36" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h13" href="../file/public_html/templates/payment.html.html">public_html/templates/payment.html</a> b/<a href="../file/public_html/templates/payment.html.html">public_html/templates/payment.html</a></b> -<a href="#h13-0" id="h13-0" class="h">@@ -0,0 +1,27 @@ -</a><a href="#h13-0-0" id="h13-0-0" class="i">+$def with (invoice) -</a><a href="#h13-0-1" id="h13-0-1" class="i">+$ qr = &#39;/static/qr/&#39; + invoice[&#39;id&#39;] + &#39;.png&#39; -</a><a href="#h13-0-2" id="h13-0-2" class="i">+&lt;script&gt; -</a><a href="#h13-0-3" id="h13-0-3" class="i">+function copy() { -</a><a href="#h13-0-4" id="h13-0-4" class="i">+ let textarea = document.getElementById(&quot;payreq&quot;); -</a><a href="#h13-0-5" id="h13-0-5" class="i">+ textarea.select(); -</a><a href="#h13-0-6" id="h13-0-6" class="i">+ document.execCommand(&quot;copy&quot;); -</a><a href="#h13-0-7" id="h13-0-7" class="i">+} -</a><a href="#h13-0-8" id="h13-0-8" class="i">+&lt;/script&gt; -</a><a href="#h13-0-9" id="h13-0-9" class="i">+&lt;meta http-equiv=&quot;refresh&quot; content=&quot;60&quot; /&gt; -</a><a href="#h13-0-10" id="h13-0-10" class="i">+&lt;br&gt; -</a><a href="#h13-0-11" id="h13-0-11" class="i">+&lt;h2&gt;$invoice[&#39;description&#39;]&lt;br&gt;$invoice[&#39;msatoshi&#39;] msat, $invoice[&#39;quoted_amount&#39;] $invoice[&#39;quoted_currency&#39;]&lt;/h2&gt; -</a><a href="#h13-0-12" id="h13-0-12" class="i">+&lt;br&gt; -</a><a href="#h13-0-13" id="h13-0-13" class="i">+&lt;img src=&quot;$qr&quot;&gt; -</a><a href="#h13-0-14" id="h13-0-14" class="i">+&lt;div id=&#39;hash&#39;&gt; -</a><a href="#h13-0-15" id="h13-0-15" class="i">+&lt;h4&gt;id:&lt;/h4&gt; -</a><a href="#h13-0-16" id="h13-0-16" class="i">+&lt;textarea id=&#39;payid&#39;&gt; -</a><a href="#h13-0-17" id="h13-0-17" class="i">+$invoice[&#39;id&#39;] -</a><a href="#h13-0-18" id="h13-0-18" class="i">+&lt;/textarea&gt; -</a><a href="#h13-0-19" id="h13-0-19" class="i">+&lt;h4&gt;pay req:&lt;/h4&gt; -</a><a href="#h13-0-20" id="h13-0-20" class="i">+&lt;textarea id=&#39;payreq&#39;&gt; -</a><a href="#h13-0-21" id="h13-0-21" class="i">+$invoice[&#39;payreq&#39;] -</a><a href="#h13-0-22" id="h13-0-22" class="i">+&lt;/textarea&gt; -</a><a href="#h13-0-23" id="h13-0-23" class="i">+&lt;br&gt; -</a><a href="#h13-0-24" id="h13-0-24" class="i">+&lt;button id=&quot;copybutton&quot; onclick=&quot;copy()&quot;&gt;Copy&lt;/button&gt; -</a><a href="#h13-0-25" id="h13-0-25" class="i">+&lt;button id=&quot;backbutton&quot; autofocus onclick=&quot;parent.location=&#39;/&#39;&quot;&gt;Back&lt;/button&gt; -</a><a href="#h13-0-26" id="h13-0-26" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h14" href="../file/public_html/templates/payments.html.html">public_html/templates/payments.html</a> b/<a href="../file/public_html/templates/payments.html.html">public_html/templates/payments.html</a></b> -<a href="#h14-0" id="h14-0" class="h">@@ -0,0 +1,33 @@ -</a><a href="#h14-0-0" id="h14-0-0" class="i">+$def with (payments) -</a><a href="#h14-0-1" id="h14-0-1" class="i">+$var payments = payments -</a><a href="#h14-0-2" id="h14-0-2" class="i">+$ link = &#39;&#39; -</a><a href="#h14-0-3" id="h14-0-3" class="i">+&lt;/div&gt; -</a><a href="#h14-0-4" id="h14-0-4" class="i">+&lt;h2&gt;payments&lt;/h2&gt; -</a><a href="#h14-0-5" id="h14-0-5" class="i">+&lt;table&gt; -</a><a href="#h14-0-6" id="h14-0-6" class="i">+$for i in payments: -</a><a href="#h14-0-7" id="h14-0-7" class="i">+ $if i.payment == &#39;Bitcoin&#39;: -</a><a href="#h14-0-8" id="h14-0-8" class="i">+ $ link = &quot;/paybtc/&quot; + i.invoice_key -</a><a href="#h14-0-9" id="h14-0-9" class="i">+ $if i.payment == &#39;Bitcoin Lightning&#39;: -</a><a href="#h14-0-10" id="h14-0-10" class="i">+ $ link = &quot;/payln/&quot; + i.invoice_key -</a><a href="#h14-0-11" id="h14-0-11" class="i">+ &lt;pre&gt; -</a><a href="#h14-0-12" id="h14-0-12" class="i">+ &lt;b&gt;status: $i.status&lt;/b&gt; -</a><a href="#h14-0-13" id="h14-0-13" class="i">+ &lt;a href=$link&gt;$i.invoice_key&lt;/a&gt; -</a><a href="#h14-0-14" id="h14-0-14" class="i">+ $i.payment -</a><a href="#h14-0-15" id="h14-0-15" class="i">+ $i.btc -</a><a href="#h14-0-16" id="h14-0-16" class="i">+ $i.ln -</a><a href="#h14-0-17" id="h14-0-17" class="i">+ $i.products | $float(i.amount/100) &amp;euro; | Satoshis: $i.totsats -</a><a href="#h14-0-18" id="h14-0-18" class="i">+ order $i.timestamp -</a><a href="#h14-0-19" id="h14-0-19" class="i">+ $if i.datepaid: -</a><a href="#h14-0-20" id="h14-0-20" class="i">+ paid $i.datepaid -</a><a href="#h14-0-21" id="h14-0-21" class="i">+ $else: -</a><a href="#h14-0-22" id="h14-0-22" class="i">+ not paid! -</a><a href="#h14-0-23" id="h14-0-23" class="i">+ $i.email -</a><a href="#h14-0-24" id="h14-0-24" class="i">+ $i.firstname $i.lastname -</a><a href="#h14-0-25" id="h14-0-25" class="i">+ $i.address -</a><a href="#h14-0-26" id="h14-0-26" class="i">+ $i.postalcode -</a><a href="#h14-0-27" id="h14-0-27" class="i">+ $i.town -</a><a href="#h14-0-28" id="h14-0-28" class="i">+ $i.country -</a><a href="#h14-0-29" id="h14-0-29" class="i">+ &lt;a href=&#39;/payments?status=thankyou&amp;key=$i.invoice_key&#39;&gt;thank you&lt;/a&gt; | &lt;a href=&#39;/payments?status=shipped&amp;key=$i.invoice_key&#39;&gt;shipped&lt;/a&gt; | &lt;a href=&#39;/payments?status=paynotice&amp;key=$i.invoice_key&#39;&gt;payment notice&lt;/a&gt; | &lt;a href=&#39;/payments?status=remove&amp;key=$i.invoice_key&#39;&gt;remove&lt;/a&gt; -</a><a href="#h14-0-30" id="h14-0-30" class="i">+ &lt;/pre&gt; -</a><a href="#h14-0-31" id="h14-0-31" class="i">+&lt;/table&gt; -</a><a href="#h14-0-32" id="h14-0-32" class="i">+ -</a><b>diff --git a/<a id="h15" href="../file/public_html/templates/pending.html.html">public_html/templates/pending.html</a> b/<a href="../file/public_html/templates/pending.html.html">public_html/templates/pending.html</a></b> -<a href="#h15-0" id="h15-0" class="h">@@ -0,0 +1,50 @@ -</a><a href="#h15-0-0" id="h15-0-0" class="i">+$def with (pending_key, pendingform, pendinginfo, shippinginfo, bag, b, productname, float) -</a><a href="#h15-0-1" id="h15-0-1" class="i">+$ tot = 0 -</a><a href="#h15-0-2" id="h15-0-2" class="i">+&lt;div id=&quot;container&quot;&gt; -</a><a href="#h15-0-3" id="h15-0-3" class="i">+&lt;div id=&quot;default&quot;&gt; -</a><a href="#h15-0-4" id="h15-0-4" class="i">+&lt;h2&gt;Checkout&lt;/h2&gt; -</a><a href="#h15-0-5" id="h15-0-5" class="i">+$if bag != []: -</a><a href="#h15-0-6" id="h15-0-6" class="i">+ in your order (click to remove): -</a><a href="#h15-0-7" id="h15-0-7" class="i">+ $for i in bag: -</a><a href="#h15-0-8" id="h15-0-8" class="i">+ $code: -</a><a href="#h15-0-9" id="h15-0-9" class="i">+ price = i.quantity * float(i.price/100) -</a><a href="#h15-0-10" id="h15-0-10" class="i">+ &lt;a href=&quot;/dropitem/$i.product&quot;&gt;$i.quantity x $productname(i.product)&lt;/a&gt; $price&amp;euro; &lt;br&gt; -</a><a href="#h15-0-11" id="h15-0-11" class="i">+ &lt;img src=&quot;/static/img/$i.product/thumb/000.jpeg&quot; style=&quot;width:120px&quot;&gt;&lt;br&gt; -</a><a href="#h15-0-12" id="h15-0-12" class="i">+ $code: -</a><a href="#h15-0-13" id="h15-0-13" class="i">+ tot += price -</a><a href="#h15-0-14" id="h15-0-14" class="i">+ -</a><a href="#h15-0-15" id="h15-0-15" class="i">+ -</a><a href="#h15-0-16" id="h15-0-16" class="i">+&lt;br&gt; -</a><a href="#h15-0-17" id="h15-0-17" class="i">+$if pendinginfo.country == &#39;NO-SHIPPING&#39;: -</a><a href="#h15-0-18" id="h15-0-18" class="i">+ No shipping selected, be sure to pick up item yaself okey. -</a><a href="#h15-0-19" id="h15-0-19" class="i">+$else: -</a><a href="#h15-0-20" id="h15-0-20" class="i">+ Shipping cost to $pendinginfo.country is $float(shippinginfo.price/100)&amp;euro; &lt;br&gt; -</a><a href="#h15-0-21" id="h15-0-21" class="i">+ Shipping estimate is $shippinginfo.days days&lt;br&gt; -</a><a href="#h15-0-22" id="h15-0-22" class="i">+ $code: -</a><a href="#h15-0-23" id="h15-0-23" class="i">+ tot += float(shippinginfo.price/100) -</a><a href="#h15-0-24" id="h15-0-24" class="i">+ &lt;pre&gt; -</a><a href="#h15-0-25" id="h15-0-25" class="i">+ First Name: $pendinginfo.firstname -</a><a href="#h15-0-26" id="h15-0-26" class="i">+ Last Name: $pendinginfo.lastname -</a><a href="#h15-0-27" id="h15-0-27" class="i">+ Country: $pendinginfo.country -</a><a href="#h15-0-28" id="h15-0-28" class="i">+ Address: $pendinginfo.address -</a><a href="#h15-0-29" id="h15-0-29" class="i">+ Town: $pendinginfo.town -</a><a href="#h15-0-30" id="h15-0-30" class="i">+ Postalcode: $pendinginfo.postalcode -</a><a href="#h15-0-31" id="h15-0-31" class="i">+ Email: $pendinginfo.email -</a><a href="#h15-0-32" id="h15-0-32" class="i">+ &lt;/pre&gt; -</a><a href="#h15-0-33" id="h15-0-33" class="i">+ -</a><a href="#h15-0-34" id="h15-0-34" class="i">+&lt;br&gt; -</a><a href="#h15-0-35" id="h15-0-35" class="i">+&lt;h3&gt; -</a><a href="#h15-0-36" id="h15-0-36" class="i">+$if tot &gt; 0: -</a><a href="#h15-0-37" id="h15-0-37" class="i">+ total: $(tot)&amp;euro; or in real money $int(b.convert_to_btc(tot, &#39;EUR&#39;) * 100000000) Satoshi -</a><a href="#h15-0-38" id="h15-0-38" class="i">+&lt;/h3&gt; -</a><a href="#h15-0-39" id="h15-0-39" class="i">+&lt;br&gt; -</a><a href="#h15-0-40" id="h15-0-40" class="i">+&lt;a href=&quot;/checkout/$pending_key&quot;&gt;Go back!&lt;/a&gt; -</a><a href="#h15-0-41" id="h15-0-41" class="i">+&lt;div id=&quot;addevent&quot;&gt; -</a><a href="#h15-0-42" id="h15-0-42" class="i">+&lt;form method=&quot;POST&quot;&gt; -</a><a href="#h15-0-43" id="h15-0-43" class="i">+$:pendingform.render() -</a><a href="#h15-0-44" id="h15-0-44" class="i">+&lt;/form&gt; -</a><a href="#h15-0-45" id="h15-0-45" class="i">+&lt;/div&gt; -</a><a href="#h15-0-46" id="h15-0-46" class="i">+&lt;b&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt; -</a><a href="#h15-0-47" id="h15-0-47" class="i">+&lt;/div&gt; -</a><a href="#h15-0-48" id="h15-0-48" class="i">+&lt;/div&gt; -</a><a href="#h15-0-49" id="h15-0-49" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h16" href="../file/public_html/templates/products.html.html">public_html/templates/products.html</a> b/<a href="../file/public_html/templates/products.html.html">public_html/templates/products.html</a></b> -<a href="#h16-0" id="h16-0" class="h">@@ -0,0 +1,29 @@ -</a><a href="#h16-0-0" id="h16-0-0" class="i">+$def with (addproduct, listproducts, productimages, idvalue) -</a><a href="#h16-0-1" id="h16-0-1" class="i">+&lt;div id=&quot;container&quot;&gt; -</a><a href="#h16-0-2" id="h16-0-2" class="i">+&lt;div id=&quot;default&quot;&gt; -</a><a href="#h16-0-3" id="h16-0-3" class="i">+&lt;br&gt; -</a><a href="#h16-0-4" id="h16-0-4" class="i">+$for i in listproducts: -</a><a href="#h16-0-5" id="h16-0-5" class="i">+ &lt;a href=&#39;/products/$i.id&#39;&gt;$i.name $i.price&lt;/a&gt; -</a><a href="#h16-0-6" id="h16-0-6" class="i">+$if idvalue == &#39;&#39;: -</a><a href="#h16-0-7" id="h16-0-7" class="i">+ &lt;h2&gt;Add product&lt;/h2&gt; -</a><a href="#h16-0-8" id="h16-0-8" class="i">+$else: -</a><a href="#h16-0-9" id="h16-0-9" class="i">+ &lt;h2&gt;Edit product&lt;/h2&gt; -</a><a href="#h16-0-10" id="h16-0-10" class="i">+&lt;div id=&quot;addevent&quot;&gt; -</a><a href="#h16-0-11" id="h16-0-11" class="i">+&lt;form method=&quot;POST&quot;&gt; -</a><a href="#h16-0-12" id="h16-0-12" class="i">+$:addproduct.render() -</a><a href="#h16-0-13" id="h16-0-13" class="i">+&lt;/form&gt; -</a><a href="#h16-0-14" id="h16-0-14" class="i">+&lt;a href=&#39;/products/$idvalue?cmd=del&amp;id=$idvalue&#39;&gt;remove product&lt;/a&gt; -</a><a href="#h16-0-15" id="h16-0-15" class="i">+&lt;br&gt; -</a><a href="#h16-0-16" id="h16-0-16" class="i">+$for i in productimages: -</a><a href="#h16-0-17" id="h16-0-17" class="i">+ &lt;img src=&quot;/static/img/$idvalue/thumb/$i&quot;&gt; -</a><a href="#h16-0-18" id="h16-0-18" class="i">+ &lt;a href=&#39;/products/$idvalue?cmd=removeimg&amp;img=$i&#39;&gt;remove&lt;/a&gt; -</a><a href="#h16-0-19" id="h16-0-19" class="i">+&lt;form method=&quot;POST&quot; enctype=&quot;multipart/form-data&quot; action=&quot;&quot;&gt; -</a><a href="#h16-0-20" id="h16-0-20" class="i">+Image(jpeg): &lt;input type=&quot;file&quot; name=&quot;imgfile&quot;/&gt; &lt;br&gt; -</a><a href="#h16-0-21" id="h16-0-21" class="i">+&lt;br/&gt; -</a><a href="#h16-0-22" id="h16-0-22" class="i">+&lt;input name=&quot;upload&quot;, type=&quot;submit&quot; value=&quot;upload&quot; /&gt; -</a><a href="#h16-0-23" id="h16-0-23" class="i">+&lt;/form&gt; -</a><a href="#h16-0-24" id="h16-0-24" class="i">+&lt;/div&gt; -</a><a href="#h16-0-25" id="h16-0-25" class="i">+ -</a><a href="#h16-0-26" id="h16-0-26" class="i">+&lt;/div&gt; -</a><a href="#h16-0-27" id="h16-0-27" class="i">+&lt;/div&gt; -</a><a href="#h16-0-28" id="h16-0-28" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h17" href="../file/public_html/templates/shipping.html.html">public_html/templates/shipping.html</a> b/<a href="../file/public_html/templates/shipping.html.html">public_html/templates/shipping.html</a></b> -<a href="#h17-0" id="h17-0" class="h">@@ -0,0 +1,16 @@ -</a><a href="#h17-0-0" id="h17-0-0" class="i">+$def with (addcountry, listcountries) -</a><a href="#h17-0-1" id="h17-0-1" class="i">+&lt;div id=&quot;container&quot;&gt; -</a><a href="#h17-0-2" id="h17-0-2" class="i">+&lt;div id=&quot;default&quot;&gt; -</a><a href="#h17-0-3" id="h17-0-3" class="i">+&lt;br&gt; -</a><a href="#h17-0-4" id="h17-0-4" class="i">+&lt;h2&gt;Add shipping country&lt;/h2&gt; -</a><a href="#h17-0-5" id="h17-0-5" class="i">+&lt;div id=&quot;addevent&quot;&gt; -</a><a href="#h17-0-6" id="h17-0-6" class="i">+&lt;form method=&quot;POST&quot;&gt; -</a><a href="#h17-0-7" id="h17-0-7" class="i">+$:addcountry.render() -</a><a href="#h17-0-8" id="h17-0-8" class="i">+&lt;/form&gt; -</a><a href="#h17-0-9" id="h17-0-9" class="i">+&lt;/div&gt; -</a><a href="#h17-0-10" id="h17-0-10" class="i">+$for i in listcountries: -</a><a href="#h17-0-11" id="h17-0-11" class="i">+ &lt;a href=&#39;/shipping/$i.id&#39;&gt;$i.country $i.price $i.days&lt;/a&gt; -</a><a href="#h17-0-12" id="h17-0-12" class="i">+&lt;b&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt; -</a><a href="#h17-0-13" id="h17-0-13" class="i">+&lt;/div&gt; -</a><a href="#h17-0-14" id="h17-0-14" class="i">+&lt;/div&gt; -</a><a href="#h17-0-15" id="h17-0-15" class="i">+&lt;/div&gt; -</a><b>diff --git a/<a id="h18" href="../file/public_html/templates/thankyou.html.html">public_html/templates/thankyou.html</a> b/<a href="../file/public_html/templates/thankyou.html.html">public_html/templates/thankyou.html</a></b> -<a href="#h18-0" id="h18-0" class="h">@@ -0,0 +1,19 @@ -</a><a href="#h18-0-0" id="h18-0-0" class="i">+$def with (id) -</a><a href="#h18-0-1" id="h18-0-1" class="i">+&lt;script&gt; -</a><a href="#h18-0-2" id="h18-0-2" class="i">+function copy() { -</a><a href="#h18-0-3" id="h18-0-3" class="i">+ let textarea = document.getElementById(&quot;payid&quot;); -</a><a href="#h18-0-4" id="h18-0-4" class="i">+ textarea.select(); -</a><a href="#h18-0-5" id="h18-0-5" class="i">+ document.execCommand(&quot;copy&quot;); -</a><a href="#h18-0-6" id="h18-0-6" class="i">+} -</a><a href="#h18-0-7" id="h18-0-7" class="i">+&lt;/script&gt; -</a><a href="#h18-0-8" id="h18-0-8" class="i">+ -</a><a href="#h18-0-9" id="h18-0-9" class="i">+&lt;h1&gt;Payment received!&lt;/h1&gt; -</a><a href="#h18-0-10" id="h18-0-10" class="i">+&lt;h2&gt;Thank you!&lt;/h2&gt; -</a><a href="#h18-0-11" id="h18-0-11" class="i">+ -</a><a href="#h18-0-12" id="h18-0-12" class="i">+&lt;p&gt;show id to madbaker and claim your bread&lt;/p&gt; -</a><a href="#h18-0-13" id="h18-0-13" class="i">+&lt;textarea id=&#39;payid&#39;&gt; -</a><a href="#h18-0-14" id="h18-0-14" class="i">+$id -</a><a href="#h18-0-15" id="h18-0-15" class="i">+&lt;/textarea&gt; -</a><a href="#h18-0-16" id="h18-0-16" class="i">+&lt;button id=&quot;copybutton&quot; onclick=&quot;copy()&quot;&gt;Copy&lt;/button&gt; -</a><a href="#h18-0-17" id="h18-0-17" class="i">+&lt;br&gt; -</a><a href="#h18-0-18" id="h18-0-18" class="i">+&lt;button id=&quot;backbutton&quot; autofocus onclick=&quot;parent.location=&#39;/&#39;&quot;&gt;Back&lt;/button&gt; -</a></pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/Now-Black.otf.html b/public_html/static/git/file/public_html/static/fonts/Now-Black.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Now-Black.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Now-Black.otf (30676B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/Now-Bold.otf.html b/public_html/static/git/file/public_html/static/fonts/Now-Bold.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Now-Bold.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Now-Bold.otf (30624B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/Now-Light.otf.html b/public_html/static/git/file/public_html/static/fonts/Now-Light.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Now-Light.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Now-Light.otf (30216B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/Now-Medium.otf.html b/public_html/static/git/file/public_html/static/fonts/Now-Medium.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Now-Medium.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Now-Medium.otf (30544B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/Now-Regular.otf.html b/public_html/static/git/file/public_html/static/fonts/Now-Regular.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Now-Regular.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Now-Regular.otf (30132B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/Now-Thin.otf.html b/public_html/static/git/file/public_html/static/fonts/Now-Thin.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Now-Thin.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Now-Thin.otf (29764B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/OFL-FAQ.txt.html b/public_html/static/git/file/public_html/static/fonts/OFL-FAQ.txt.html @@ -1,451 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>OFL-FAQ.txt - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> OFL-FAQ.txt (58569B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> Copyright (c) 2015, Alfredo Marco Pradil (&lt;http://behance.net/pradil | ammpradil@gmail.com&gt;), with Reserved Font Name Now. -<a href="#l2" class="line" id="l2"> 2</a> -<a href="#l3" class="line" id="l3"> 3</a> OFL FAQ - Frequently Asked Questions about the SIL Open Font License (OFL) -<a href="#l4" class="line" id="l4"> 4</a> Version 1.1-update4 - Sept 2014 -<a href="#l5" class="line" id="l5"> 5</a> (See http://scripts.sil.org/OFL for updates) -<a href="#l6" class="line" id="l6"> 6</a> -<a href="#l7" class="line" id="l7"> 7</a> -<a href="#l8" class="line" id="l8"> 8</a> CONTENTS OF THIS FAQ -<a href="#l9" class="line" id="l9"> 9</a> 1 USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL -<a href="#l10" class="line" id="l10"> 10</a> 2 USING OFL FONTS FOR WEB PAGES AND ONLINE WEB FONT SERVICES -<a href="#l11" class="line" id="l11"> 11</a> 3 MODIFYING OFL-LICENSED FONTS -<a href="#l12" class="line" id="l12"> 12</a> 4 LICENSING YOUR ORIGINAL FONTS UNDER THE OFL -<a href="#l13" class="line" id="l13"> 13</a> 5 CHOOSING RESERVED FONT NAMES -<a href="#l14" class="line" id="l14"> 14</a> 6 ABOUT THE FONTLOG -<a href="#l15" class="line" id="l15"> 15</a> 7 MAKING CONTRIBUTIONS TO OFL PROJECTS -<a href="#l16" class="line" id="l16"> 16</a> 8 ABOUT THE LICENSE ITSELF -<a href="#l17" class="line" id="l17"> 17</a> 9 ABOUT SIL INTERNATIONAL -<a href="#l18" class="line" id="l18"> 18</a> APPENDIX A - FONTLOG EXAMPLE -<a href="#l19" class="line" id="l19"> 19</a> -<a href="#l20" class="line" id="l20"> 20</a> 1 USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL -<a href="#l21" class="line" id="l21"> 21</a> -<a href="#l22" class="line" id="l22"> 22</a> 1.1 Can I use the fonts for a book or other print publication, to create logos or other graphics or even to manufacture objects based on their outlines? -<a href="#l23" class="line" id="l23"> 23</a> Yes. You are very welcome to do so. Authors of fonts released under the OFL allow you to use their font software as such for any kind of design work. No additional license or permission is required, unlike with some other licenses. Some examples of these uses are: logos, posters, business cards, stationery, video titling, signage, t-shirts, personalised fabric, 3D-printed/laser-cut shapes, sculptures, rubber stamps, cookie cutters and lead type. -<a href="#l24" class="line" id="l24"> 24</a> -<a href="#l25" class="line" id="l25"> 25</a> 1.1.1 Does that restrict the license or distribution of that artwork? -<a href="#l26" class="line" id="l26"> 26</a> No. You remain the author and copyright holder of that newly derived graphic or object. You are simply using an open font in the design process. It is only when you redistribute, bundle or modify the font itself that other conditions of the license have to be respected (see below for more details). -<a href="#l27" class="line" id="l27"> 27</a> -<a href="#l28" class="line" id="l28"> 28</a> 1.1.2 Is any kind of acknowledgement required? -<a href="#l29" class="line" id="l29"> 29</a> No. Font authors may appreciate being mentioned in your artwork&#39;s acknowledgements alongside the name of the font, possibly with a link to their website, but that is not required. -<a href="#l30" class="line" id="l30"> 30</a> -<a href="#l31" class="line" id="l31"> 31</a> 1.2 Can the fonts be included with Free/Libre and Open Source Software collections such as GNU/Linux and BSD distributions and repositories? -<a href="#l32" class="line" id="l32"> 32</a> Yes! Fonts licensed under the OFL can be freely included alongside other software under FLOSS (Free/Libre and Open Source Software) licenses. Since fonts are typically aggregated with, not merged into, existing software, there is little need to be concerned about incompatibility with existing software licenses. You may also repackage the fonts and the accompanying components in a .rpm or .deb package (or other similar package formats or installers) and include them in distribution CD/DVDs and online repositories. (Also see section 5.9 about rebuilding from source.) -<a href="#l33" class="line" id="l33"> 33</a> -<a href="#l34" class="line" id="l34"> 34</a> 1.3 I want to distribute the fonts with my program. Does this mean my program also has to be Free/Libre and Open Source Software? -<a href="#l35" class="line" id="l35"> 35</a> No. Only the portions based on the Font Software are required to be released under the OFL. The intent of the license is to allow aggregation or bundling with software under restricted licensing as well. -<a href="#l36" class="line" id="l36"> 36</a> -<a href="#l37" class="line" id="l37"> 37</a> 1.4 Can I sell a software package that includes these fonts? -<a href="#l38" class="line" id="l38"> 38</a> Yes, you can do this with both the Original Version and a Modified Version of the fonts. Examples of bundling made possible by the OFL would include: word processors, design and publishing applications, training and educational software, games and entertainment software, mobile device applications, etc. -<a href="#l39" class="line" id="l39"> 39</a> -<a href="#l40" class="line" id="l40"> 40</a> 1.5 Can I include the fonts on a CD of freeware or commercial fonts? -<a href="#l41" class="line" id="l41"> 41</a> Yes, as long some other font or software is also on the disk, so the OFL font is not sold by itself. -<a href="#l42" class="line" id="l42"> 42</a> -<a href="#l43" class="line" id="l43"> 43</a> 1.6 Why won&#39;t the OFL let me sell the fonts alone? -<a href="#l44" class="line" id="l44"> 44</a> The intent is to keep people from making money by simply redistributing the fonts. The only people who ought to profit directly from the fonts should be the original authors, and those authors have kindly given up potential direct income to distribute their fonts under the OFL. Please honour and respect their contribution! -<a href="#l45" class="line" id="l45"> 45</a> -<a href="#l46" class="line" id="l46"> 46</a> 1.7 What about sharing OFL fonts with friends on a CD, DVD or USB stick? -<a href="#l47" class="line" id="l47"> 47</a> You are very welcome to share open fonts with friends, family and colleagues through removable media. Just remember to include the full font package, including any copyright notices and licensing information as available in OFL.txt. In the case where you sell the font, it has to come bundled with software. -<a href="#l48" class="line" id="l48"> 48</a> -<a href="#l49" class="line" id="l49"> 49</a> 1.8 Can I host the fonts on a web site for others to use? -<a href="#l50" class="line" id="l50"> 50</a> Yes, as long as you make the full font package available. In most cases it may be best to point users to the main site that distributes the Original Version so they always get the most recent stable and complete version. See also discussion of web fonts in Section 2. -<a href="#l51" class="line" id="l51"> 51</a> -<a href="#l52" class="line" id="l52"> 52</a> 1.9 Can I host the fonts on a server for use over our internal network? -<a href="#l53" class="line" id="l53"> 53</a> Yes. If the fonts are transferred from the server to the client computer by means that allow them to be used even if the computer is no longer attached to the network, the full package (copyright notices, licensing information, etc.) should be included. -<a href="#l54" class="line" id="l54"> 54</a> -<a href="#l55" class="line" id="l55"> 55</a> 1.10 Does the full OFL license text always need to accompany the font? -<a href="#l56" class="line" id="l56"> 56</a> The only situation in which an OFL font can be distributed without the text of the OFL (either in a separate file or in font metadata), is when a font is embedded in a document or bundled within a program. In the case of metadata included within a font, it is legally sufficient to include only a link to the text of the OFL on http://scripts.sil.org/OFL, but we strongly recommend against this. Most modern font formats include metadata fields that will accept the full OFL text, and full inclusion increases the likelihood that users will understand and properly apply the license. -<a href="#l57" class="line" id="l57"> 57</a> -<a href="#l58" class="line" id="l58"> 58</a> 1.11 What do you mean by &#39;embedding&#39;? How does that differ from other means of distribution? -<a href="#l59" class="line" id="l59"> 59</a> By &#39;embedding&#39; we mean inclusion of the font in a document or file in a way that makes extraction (and redistribution) difficult or clearly discouraged. In many cases the names of embedded fonts might also not be obvious to those reading the document, the font data format might be altered, and only a subset of the font - only the glyphs required for the text - might be included. Any other means of delivering a font to another person is considered &#39;distribution&#39;, and needs to be accompanied by any copyright notices and licensing information available in OFL.txt. -<a href="#l60" class="line" id="l60"> 60</a> -<a href="#l61" class="line" id="l61"> 61</a> 1.12 So can I embed OFL fonts in my document? -<a href="#l62" class="line" id="l62"> 62</a> Yes, either in full or a subset. The restrictions regarding font modification and redistribution do not apply, as the font is not intended for use outside the document. -<a href="#l63" class="line" id="l63"> 63</a> -<a href="#l64" class="line" id="l64"> 64</a> 1.13 Does embedding alter the license of the document itself? -<a href="#l65" class="line" id="l65"> 65</a> No. Referencing or embedding an OFL font in any document does not change the license of the document itself. The requirement for fonts to remain under the OFL does not apply to any document created using the fonts and their derivatives. Similarly, creating any kind of graphic using a font under OFL does not make the resulting artwork subject to the OFL. -<a href="#l66" class="line" id="l66"> 66</a> -<a href="#l67" class="line" id="l67"> 67</a> 1.14 If OFL fonts are extracted from a document in which they are embedded (such as a PDF file), what can be done with them? Is this a risk to author(s)? -<a href="#l68" class="line" id="l68"> 68</a> The few utilities that can extract fonts embedded in a PDF will typically output limited amounts of outlines - not a complete font. To create a working font from this method is much more difficult and time consuming than finding the source of the original OFL font. So there is little chance that an OFL font would be extracted and redistributed inappropriately through this method. Even so, copyright laws address any misrepresentation of authorship. All Font Software released under the OFL and marked as such by the author(s) is intended to remain under this license regardless of the distribution method, and cannot be redistributed under any other license. We strongly discourage any font extraction - we recommend directly using the font sources instead - but if you extract font outlines from a document, please be considerate: respect the work of the author(s) and the licensing model. -<a href="#l69" class="line" id="l69"> 69</a> -<a href="#l70" class="line" id="l70"> 70</a> 1.15 What about distributing fonts with a document? Within a compressed folder structure? Is it distribution, bundling or embedding? -<a href="#l71" class="line" id="l71"> 71</a> Certain document formats may allow the inclusion of an unmodified font within their file structure which may consist of a compressed folder containing the various resources forming the document (such as pictures and thumbnails). Including fonts within such a structure is understood as being different from embedding but rather similar to bundling (or mere aggregation) which the license explicitly allows. In this case the font is conveyed unchanged whereas embedding a font usually transforms it from the original format. The OFL does not allow anyone to extract the font from such a structure to then redistribute it under another license. The explicit permission to redistribute and embed does not cancel the requirement for the Font Software to remain under the license chosen by its author(s). Even if the font travels inside the document as one of its assets, it should not lose its authorship information and licensing. -<a href="#l72" class="line" id="l72"> 72</a> -<a href="#l73" class="line" id="l73"> 73</a> 1.16 What about ebooks shipping with open fonts? -<a href="#l74" class="line" id="l74"> 74</a> The requirements differ depending on whether the fonts are linked, embedded or distributed (bundled or aggregated). Some ebook formats use web technologies to do font linking via @font-face, others are designed for font embedding, some use fonts distributed with the document or reading software, and a few rely solely on the fonts already present on the target system. The license requirements depend on the type of inclusion as discussed in 1.15. -<a href="#l75" class="line" id="l75"> 75</a> -<a href="#l76" class="line" id="l76"> 76</a> 1.17 Can Font Software released under the OFL be subject to URL-based access restrictions methods or DRM (Digital Rights Management) mechanisms? -<a href="#l77" class="line" id="l77"> 77</a> Yes, but these issues are out-of-scope for the OFL. The license itself neither encourages their use nor prohibits them since such mechanisms are not implemented in the components of the Font Software but through external software. Such restrictions are put in place for many different purposes corresponding to various usage scenarios. One common example is to limit potentially dangerous cross-site scripting attacks. However, in the spirit of libre/open fonts and unrestricted writing systems, we strongly encourage open sharing and reuse of OFL fonts, and the establishment of an environment where such restrictions are unnecessary. Note that whether you wish to use such mechanisms or you prefer not to, you must still abide by the rules set forth by the OFL when using fonts released by their authors under this license. Derivative fonts must be licensed under the OFL, even if they are part of a service for which you charge fees and/or for which access to source code is restricted. You may not sell the fonts on their own - they must be part of a larger software package, bundle or subscription plan. For example, even if the OFL font is distributed in a software package or via an online service using a DRM mechanism, the user would still have the right to extract that font, use, study, modify and redistribute it under the OFL. -<a href="#l78" class="line" id="l78"> 78</a> -<a href="#l79" class="line" id="l79"> 79</a> 1.18 I&#39;ve come across a font released under the OFL. How can I easily get more information about the Original Version? How can I know where it stands compared to the Original Version or other Modified Versions? -<a href="#l80" class="line" id="l80"> 80</a> Consult the copyright statement(s) in the license for ways to contact the original authors. Consult the FONTLOG (see section 6 for more details and examples) for information on how the font differs from the Original Version, and get in touch with the various contributors via the information in the acknowledgement section. Please consider using the Original Versions of the fonts whenever possible. -<a href="#l81" class="line" id="l81"> 81</a> -<a href="#l82" class="line" id="l82"> 82</a> 1.19 What do you mean in condition 4 of the OFL&#39;s permissions and conditions? Can you provide examples of abusive promotion / endorsement / advertisement vs. normal acknowledgement? -<a href="#l83" class="line" id="l83"> 83</a> The intent is that the goodwill and reputation of the author(s) should not be used in a way that makes it sound like the original author(s) endorse or approve of a specific Modified Version or software bundle. For example, it would not be right to advertise a word processor by naming the author(s) in a listing of software features, or to promote a Modified Version on a web site by saying &quot;designed by ...&quot;. However, it would be appropriate to acknowledge the author(s) if your software package has a list of people who deserve thanks. We realize that this can seem to be a grey area, but the standard used to judge an acknowledgement is that if the acknowledgement benefits the author(s) it is allowed, but if it primarily benefits other parties, or could reflect poorly on the author(s), then it is not. -<a href="#l84" class="line" id="l84"> 84</a> -<a href="#l85" class="line" id="l85"> 85</a> 1.20 I&#39;m writing a small app for mobile platforms, do I need to include the whole package? -<a href="#l86" class="line" id="l86"> 86</a> If you bundle a font under the OFL with your mobile app you must comply with the terms of the license. At a minimum you must include the copyright statement, the license notice and the license text. A mention of this information in your About box or Changelog, with a link to where the font package is from, is good practice, and the extra space needed to carry these items is very small. You do not, however, need to include the full contents of the font package - only the fonts you use and the copyright and license that apply to them. For example, if you only use the regular weight in your app, you do not need to include the italic and bold versions. -<a href="#l87" class="line" id="l87"> 87</a> -<a href="#l88" class="line" id="l88"> 88</a> 1.21 What about including OFL fonts by default in my firmware or dedicated operating system? -<a href="#l89" class="line" id="l89"> 89</a> Many such systems are restricted and turned into appliances so that users cannot study or modify them. Using open fonts to increase quality and language coverage is a great idea, but you need to be aware that if there is a way for users to extract fonts you cannot legally prevent them from doing that. The fonts themselves, including any changes you make to them, must be distributed under the OFL even if your firmware has a more restrictive license. If you do transform the fonts and change their formats when you include them in your firmware you must respect any names reserved by the font authors via the RFN mechanism and pick your own font name. Alternatively if you directly add a font under the OFL to the font folder of your firmware without modifying or optimizing it you are simply bundling the font like with any other software collection, and do not need to make any further changes. -<a href="#l90" class="line" id="l90"> 90</a> -<a href="#l91" class="line" id="l91"> 91</a> 1.22 Can I make and publish CMS themes or templates that use OFL fonts? Can I include the fonts themselves in the themes or templates? Can I sell the whole package? -<a href="#l92" class="line" id="l92"> 92</a> Yes, you are very welcome to integrate open fonts into themes and templates for your preferred CMS and make them more widely available. Remember that you can only sell the fonts and your CMS add-on as part of a software bundle. (See 1.4 for details and examples about selling bundles). -<a href="#l93" class="line" id="l93"> 93</a> -<a href="#l94" class="line" id="l94"> 94</a> 1.23 Can OFL fonts be included in services that deliver fonts to the desktop from remote repositories? Even if they contain both OFL and non-OFL fonts? -<a href="#l95" class="line" id="l95"> 95</a> Yes. Some foundries have set up services to deliver fonts to subscribers directly to desktops from their online repositories; similarly, plugins are available to preview and use fonts directly in your design tool or publishing suite. These services may mix open and restricted fonts in the same channel, however they should make a clear distinction between them to users. These services should also not hinder users (such as through DRM or obfuscation mechanisms) from extracting and using the OFL fonts in other environments, or continuing to use OFL fonts after subscription terms have ended, as those uses are specifically allowed by the OFL. -<a href="#l96" class="line" id="l96"> 96</a> -<a href="#l97" class="line" id="l97"> 97</a> 1.24 Can services that provide or distribute OFL fonts restrict my use of them? -<a href="#l98" class="line" id="l98"> 98</a> No. The terms of use of such services cannot replace or restrict the terms of the OFL, as that would be the same as distributing the fonts under a different license, which is not allowed. You are still entitled to use, modify and redistribute them as the original authors have intended outside of the sole control of that particular distribution channel. Note, however, that the fonts provided by these services may differ from the Original Versions. -<a href="#l99" class="line" id="l99"> 99</a> -<a href="#l100" class="line" id="l100"> 100</a> -<a href="#l101" class="line" id="l101"> 101</a> 2 USING OFL FONTS FOR WEBPAGES AND ONLINE WEB FONT SERVICES -<a href="#l102" class="line" id="l102"> 102</a> -<a href="#l103" class="line" id="l103"> 103</a> NOTE: This section often refers to a separate paper on &#39;Web Fonts &amp; RFNs&#39;. This is available at http://scripts.sil.org/OFL_web_fonts_and_RFNs -<a href="#l104" class="line" id="l104"> 104</a> -<a href="#l105" class="line" id="l105"> 105</a> 2.1 Can I make webpages using these fonts? -<a href="#l106" class="line" id="l106"> 106</a> Yes! Go ahead! Using CSS (Cascading Style Sheets) is recommended. Your three best options are: -<a href="#l107" class="line" id="l107"> 107</a> - referring directly in your stylesheet to open fonts which may be available on the user&#39;s system -<a href="#l108" class="line" id="l108"> 108</a> - providing links to download the full package of the font - either from your own website or from elsewhere - so users can install it themselves -<a href="#l109" class="line" id="l109"> 109</a> - using @font-face to distribute the font directly to browsers. This is recommended and explicitly allowed by the licensing model because it is distribution. The font file itself is distributed with other components of the webpage. It is not embedded in the webpage but referenced through a web address which will cause the browser to retrieve and use the corresponding font to render the webpage (see 1.11 and 1.15 for details related to embedding fonts into documents). As you take advantage of the @font-face cross-platform standard, be aware that web fonts are often tuned for a web environment and not intended for installation and use outside a browser. The reasons in favour of using web fonts are to allow design of dynamic text elements instead of static graphics, to make it easier for content to be localized and translated, indexed and searched, and all this with cross-platform open standards without depending on restricted extensions or plugins. You should check the CSS cascade (the order in which fonts are being called or delivered to your users) when testing. -<a href="#l110" class="line" id="l110"> 110</a> -<a href="#l111" class="line" id="l111"> 111</a> 2.2 Can I make and use WOFF (Web Open Font Format) versions of OFL fonts? -<a href="#l112" class="line" id="l112"> 112</a> Yes, but you need to be careful. A change in font format normally is considered modification, and Reserved Font Names (RFNs) cannot be used. Because of the design of the WOFF format, however, it is possible to create a WOFF version that is not considered modification, and so would not require a name change. You are allowed to create, use and distribute a WOFF version of an OFL font without changing the font name, but only if: -<a href="#l113" class="line" id="l113"> 113</a> -<a href="#l114" class="line" id="l114"> 114</a> - the original font data remains unchanged except for WOFF compression, and -<a href="#l115" class="line" id="l115"> 115</a> - WOFF-specific metadata is either omitted altogether or present and includes, unaltered, the contents of all equivalent metadata in the original font. -<a href="#l116" class="line" id="l116"> 116</a> -<a href="#l117" class="line" id="l117"> 117</a> If the original font data or metadata is changed, or the WOFF-specific metadata is incomplete, the font must be considered a Modified Version, the OFL restrictions would apply and the name of the font must be changed: any RFNs cannot be used and copyright notices and licensing information must be included and cannot be deleted or modified. You must come up with a unique name - we recommend one corresponding to your domain or your particular web application. Be aware that only the original author(s) can use RFNs. This is to prevent collisions between a derivative tuned to your audience and the original upstream version and so to reduce confusion. -<a href="#l118" class="line" id="l118"> 118</a> -<a href="#l119" class="line" id="l119"> 119</a> Please note that most WOFF conversion tools and online services do not meet the two requirements listed above, and so their output must be considered a Modified Version. So be very careful and check to be sure that the tool or service you&#39;re using is compressing unchanged data and completely and accurately reflecting the original font metadata. -<a href="#l120" class="line" id="l120"> 120</a> -<a href="#l121" class="line" id="l121"> 121</a> 2.3 What about other web font formats such as EOT/EOTLite/CWT/etc.? -<a href="#l122" class="line" id="l122"> 122</a> In most cases these formats alter the original font data more than WOFF, and do not completely support appropriate metadata, so their use must be considered modification and RFNs may not be used. However, there may be certain formats or usage scenarios that may allow the use of RFNs. See http://scripts.sil.org/OFL_web_fonts_and_RFNs -<a href="#l123" class="line" id="l123"> 123</a> -<a href="#l124" class="line" id="l124"> 124</a> 2.4 Can I make OFL fonts available through web font online services? -<a href="#l125" class="line" id="l125"> 125</a> Yes, you are welcome to include OFL fonts in online web font services as long as you properly meet all the conditions of the license. The origin and open status of the font should be clear among the other fonts you are hosting. Authorship, copyright notices and license information must be sufficiently visible to your users or subscribers so they know where the font comes from and the rights granted by the author(s). Make sure the font file contains the needed copyright notice(s) and licensing information in its metadata. Please double-check the accuracy of every field to prevent contradictory information. Other font formats, including EOT/EOTLite/CWT and superior alternatives like WOFF, already provide fields for this information. Remember that if you modify the font within your library or convert it to another format for any reason the OFL restrictions apply and you need to change the names accordingly. Please respect the author&#39;s wishes as expressed in the OFL and do not misrepresent original designers and their work. Don&#39;t lump quality open fonts together with dubious freeware or public domain fonts. Consider how you can best work with the original designers and foundries, support their efforts and generate goodwill that will benefit your service. (See 1.17 for details related to URL-based access restrictions methods or DRM mechanisms). -<a href="#l126" class="line" id="l126"> 126</a> -<a href="#l127" class="line" id="l127"> 127</a> 2.5 Some web font formats and services provide ways of &quot;optimizing&quot; the font for a particular website or web application; is that allowed? -<a href="#l128" class="line" id="l128"> 128</a> Yes, it is permitted, but remember that these optimized versions are Modified Versions and so must follow OFL requirements like appropriate renaming. Also you need to bear in mind the other important parameters beyond compression, speed and responsiveness: you need to consider the audience of your particular website or web application, as choosing some optimization parameters may turn out to be less than ideal for them. Subsetting by removing certain glyphs or features may seriously limit functionality of the font in various languages that your users expect. It may also introduce degradation of quality in the rendering or specific bugs on the various target platforms compared to the original font from upstream. In other words, remember that one person&#39;s optimized font may be another person&#39;s missing feature. Various advanced typographic features (OpenType, Graphite or AAT) are also available through CSS and may provide the desired effects without the need to modify the font. -<a href="#l129" class="line" id="l129"> 129</a> -<a href="#l130" class="line" id="l130"> 130</a> 2.6 Is subsetting a web font considered modification? -<a href="#l131" class="line" id="l131"> 131</a> Yes. Removing any parts of the font when delivering a web font to a browser, including unused glyphs and smart font code, is considered modification. This is permitted by the OFL but would not normally allow the use of RFNs. Some newer subsetting technologies may be able to subset in a way that allows users to effectively have access to the complete font, including smart font behaviour. See 2.8 and http://scripts.sil.org/OFL_web_fonts_and_RFNs -<a href="#l132" class="line" id="l132"> 132</a> -<a href="#l133" class="line" id="l133"> 133</a> 2.7 Are there any situations in which a modified web font could use RFNs? -<a href="#l134" class="line" id="l134"> 134</a> Yes. If a web font is optimized only in ways that preserve Functional Equivalence (see 2.8), then it may use RFNs, as it reasonably represents the Original Version and respects the intentions of the author(s) and the main purposes of the RFN mechanism (avoids collisions, protects authors, minimizes support, encourages derivatives). However this is technically very difficult and often impractical, so a much better scenario is for the web font service or provider to sign a separate agreement with the author(s) that allows the use of RFNs for Modified Versions. -<a href="#l135" class="line" id="l135"> 135</a> -<a href="#l136" class="line" id="l136"> 136</a> 2.8 How do you know if an optimization to a web font preserves Functional Equivalence? -<a href="#l137" class="line" id="l137"> 137</a> Functional Equivalence is described in full in the &#39;Web fonts and RFNs&#39; paper at http://scripts.sil.org/OFL_web_fonts_and_RFNs, in general, an optimized font is deemed to be Functionally Equivalent (FE) to the Original Version if it: -<a href="#l138" class="line" id="l138"> 138</a> -<a href="#l139" class="line" id="l139"> 139</a> - Supports the same full character inventory. If a character can be properly displayed using the Original Version, then that same character, encoded correctly on a web page, will display properly. -<a href="#l140" class="line" id="l140"> 140</a> - Provides the same smart font behavior. Any dynamic shaping behavior that works with the Original Version should work when optimized, unless the browser or environment does not support it. There does not need to be guaranteed support in the client, but there should be no forced degradation of smart font or shaping behavior, such as the removal or obfuscation of OpenType, Graphite or AAT tables. -<a href="#l141" class="line" id="l141"> 141</a> - Presents text with no obvious degradation in visual quality. The lettershapes should be equally (or more) readable, within limits of the rendering platform. -<a href="#l142" class="line" id="l142"> 142</a> - Preserves original author, project and license metadata. At a minimum, this should include: Copyright and authorship; The license as stated in the Original Version, whether that is the full text of the OFL or a link to the web version; Any RFN declarations; Information already present in the font or documentation that points back to the Original Version, such as a link to the project or the author&#39;s website. -<a href="#l143" class="line" id="l143"> 143</a> -<a href="#l144" class="line" id="l144"> 144</a> If an optimized font meets these requirements, and so is considered to be FE, then it&#39;s very likely that the original author would feel that the optimized font is a good and reasonable equivalent. If it falls short of any of these requirements, the optimized font does not reasonably represent the Original Version, and so should be considered to be a Modified Version. Like other Modified Versions, it would not be allowed to use any RFNs and you simply need to pick your own font name. -<a href="#l145" class="line" id="l145"> 145</a> -<a href="#l146" class="line" id="l146"> 146</a> 2.9 Isn&#39;t use of web fonts another form of embedding? -<a href="#l147" class="line" id="l147"> 147</a> No. Unlike embedded fonts in a PDF, web fonts are not an integrated part of the document itself. They are not specific to a single document and are often applied to thousands of documents around the world. The font data is not stored alongside the document data and often originates from a different location. The ease by which the web fonts used by a document may be identified and downloaded for desktop use demonstrates that they are philosophically and technically separate from the web pages that specify them. See http://scripts.sil.org/OFL_web_fonts_and_RFNs -<a href="#l148" class="line" id="l148"> 148</a> -<a href="#l149" class="line" id="l149"> 149</a> 2.10 So would it be better to not use RFNs at all if you want your font to be distributed by a web fonts service? -<a href="#l150" class="line" id="l150"> 150</a> No. Although the OFL does not require authors to use RFNs, the RFN mechanism is an important part of the OFL model and completely compatible with web font services. If that web font service modifies the fonts, then the best solution is to sign a separate agreement for the use of any RFNs. It is perfectly valid for an author to not declare any RFNs, but before they do so they need to fully understand the benefits they are giving up, and the overall negative effect of allowing many different versions bearing the same name to be widely distributed. As a result, we don&#39;t generally recommend it. -<a href="#l151" class="line" id="l151"> 151</a> -<a href="#l152" class="line" id="l152"> 152</a> 2.11 What should an agreement for the use of RFNs say? Are there any examples? -<a href="#l153" class="line" id="l153"> 153</a> There is no prescribed format for this agreement, as legal systems vary, and no recommended examples. Authors may wish to add specific clauses to further restrict use, require author review of Modified Versions, establish user support mechanisms or provide terms for ending the agreement. Such agreements are usually not public, and apply only to the main parties. However, it would be very beneficial for web font services to clearly state when they have established such agreements, so that the public understands clearly that their service is operating appropriately. -<a href="#l154" class="line" id="l154"> 154</a> -<a href="#l155" class="line" id="l155"> 155</a> See the separate paper on &#39;Web Fonts &amp; RFNs&#39; for in-depth discussion of issues related to the use of RFNs for web fonts. This is available at http://scripts.sil.org/OFL_web_fonts_and_RFNs -<a href="#l156" class="line" id="l156"> 156</a> -<a href="#l157" class="line" id="l157"> 157</a> -<a href="#l158" class="line" id="l158"> 158</a> 3 MODIFYING OFL-LICENSED FONTS -<a href="#l159" class="line" id="l159"> 159</a> -<a href="#l160" class="line" id="l160"> 160</a> 3.1 Can I change the fonts? Are there any limitations to what things I can and cannot change? -<a href="#l161" class="line" id="l161"> 161</a> You are allowed to change anything, as long as such changes do not violate the terms of the license. In other words, you are not allowed to remove the copyright statement(s) from the font, but you could put additional information into it that covers your contribution. See the placeholders in the OFL header template for recommendations on where to add your own statements. (Remember that, when authors have reserved names via the RFN mechanism, you need to change the internal names of the font to your own font name when making your modified version even if it is just a small change.) -<a href="#l162" class="line" id="l162"> 162</a> -<a href="#l163" class="line" id="l163"> 163</a> 3.2 I have a font that needs a few extra glyphs - can I take them from an OFL licensed font and copy them into mine? -<a href="#l164" class="line" id="l164"> 164</a> Yes, but if you distribute that font to others it must be under the OFL, and include the information mentioned in condition 2 of the license. -<a href="#l165" class="line" id="l165"> 165</a> -<a href="#l166" class="line" id="l166"> 166</a> 3.3 Can I charge people for my additional work? In other words, if I add a bunch of special glyphs or OpenType/Graphite/AAT code, can I sell the enhanced font? -<a href="#l167" class="line" id="l167"> 167</a> Not by itself. Derivative fonts must be released under the OFL and cannot be sold by themselves. It is permitted, however, to include them in a larger software package (such as text editors, office suites or operating systems), even if the larger package is sold. In that case, you are strongly encouraged, but not required, to also make that derived font easily and freely available outside of the larger package. -<a href="#l168" class="line" id="l168"> 168</a> -<a href="#l169" class="line" id="l169"> 169</a> 3.4 Can I pay someone to enhance the fonts for my use and distribution? -<a href="#l170" class="line" id="l170"> 170</a> Yes. This is a good way to fund the further development of the fonts. Keep in mind, however, that if the font is distributed to others it must be under the OFL. You won&#39;t be able to recover your investment by exclusively selling the font, but you will be making a valuable contribution to the community. Please remember how you have benefited from the contributions of others. -<a href="#l171" class="line" id="l171"> 171</a> -<a href="#l172" class="line" id="l172"> 172</a> 3.5 I need to make substantial revisions to the font to make it work with my program. It will be a lot of work, and a big investment, and I want to be sure that it can only be distributed with my program. Can I restrict its use? -<a href="#l173" class="line" id="l173"> 173</a> No. If you redistribute a Modified Version of the font it must be under the OFL. You may not restrict it in any way beyond what the OFL permits and requires. This is intended to ensure that all released improvements to the fonts become available to everyone. But you will likely get an edge over competitors by being the first to distribute a bundle with the enhancements. Again, please remember how you have benefited from the contributions of others. -<a href="#l174" class="line" id="l174"> 174</a> -<a href="#l175" class="line" id="l175"> 175</a> 3.6 Do I have to make any derivative fonts (including extended source files, build scripts, documentation, etc.) publicly available? -<a href="#l176" class="line" id="l176"> 176</a> No, but please consider sharing your improvements with others. You may find that you receive in return more than what you gave. -<a href="#l177" class="line" id="l177"> 177</a> -<a href="#l178" class="line" id="l178"> 178</a> 3.7 If a trademark is claimed in the OFL font, does that trademark need to remain in modified fonts? -<a href="#l179" class="line" id="l179"> 179</a> Yes. Any trademark notices must remain in any derivative fonts to respect trademark laws, but you may add any additional trademarks you claim, officially registered or not. For example if an OFL font called &quot;Foo&quot; contains a notice that &quot;Foo is a trademark of Acme&quot;, then if you rename the font to &quot;Bar&quot; when creating a Modified Version, the new trademark notice could say &quot;Foo is a trademark of Acme Inc. - Bar is a trademark of Roadrunner Technologies Ltd.&quot;. Trademarks work alongside the OFL and are not subject to the terms of the licensing agreement. The OFL does not grant any rights under trademark law. Bear in mind that trademark law varies from country to country and that there are no international trademark conventions as there are for copyright. You may need to significantly invest in registering and defending a trademark for it to remain valid in the countries you are interested in. This may be costly for an individual independent designer. -<a href="#l180" class="line" id="l180"> 180</a> -<a href="#l181" class="line" id="l181"> 181</a> 3.8 If I commit changes to a font (or publish a branch in a DVCS) as part of a public open source software project, do I have to change the internal font names? -<a href="#l182" class="line" id="l182"> 182</a> Only if there are declared RFNs. Making a public commit or publishing a public branch is effectively redistributing your modifications, so any change to the font will require that you do not use the RFNs. Even if there are no RFNs, it may be useful to change the name or add a suffix indicating that a particular version of the font is still in development and not released yet. This will clearly indicate to users and fellow designers that this particular font is not ready for release yet. See section 5 for more details. -<a href="#l183" class="line" id="l183"> 183</a> -<a href="#l184" class="line" id="l184"> 184</a> -<a href="#l185" class="line" id="l185"> 185</a> 4 LICENSING YOUR ORIGINAL FONTS UNDER THE OFL -<a href="#l186" class="line" id="l186"> 186</a> -<a href="#l187" class="line" id="l187"> 187</a> 4.1 Can I use the SIL OFL for my own fonts? -<a href="#l188" class="line" id="l188"> 188</a> Yes! We heartily encourage everyone to use the OFL to distribute their own original fonts. It is a carefully constructed license that allows great freedom along with enough artistic integrity protection for the work of the authors as well as clear rules for other contributors and those who redistribute the fonts. The licensing model is used successfully by various organisations, both for-profit and not-for-profit, to release fonts of varying levels of scope and complexity. -<a href="#l189" class="line" id="l189"> 189</a> -<a href="#l190" class="line" id="l190"> 190</a> 4.2 What do I have to do to apply the OFL to my font? -<a href="#l191" class="line" id="l191"> 191</a> If you want to release your fonts under the OFL, we recommend you do the following: -<a href="#l192" class="line" id="l192"> 192</a> -<a href="#l193" class="line" id="l193"> 193</a> 4.2.1 Put your copyright and Reserved Font Names information at the beginning of the main OFL.txt file in place of the dedicated placeholders (marked with the &lt;&gt; characters). Include this file in your release package. -<a href="#l194" class="line" id="l194"> 194</a> -<a href="#l195" class="line" id="l195"> 195</a> 4.2.2 Put your copyright and the OFL text with your chosen Reserved Font Name(s) into your font files (the copyright and license fields). A link to the OFL text on the OFL web site is an acceptable (but not recommended) alternative. Also add this information to any other components (build scripts, glyph databases, documentation, test files, etc). Accurate metadata in your font files is beneficial to you as an increasing number of applications are exposing this information to the user. For example, clickable links can bring users back to your website and let them know about other work you have done or services you provide. Depending on the format of your fonts and sources, you can use template human-readable headers or machine-readable metadata. You should also double-check that there is no conflicting metadata in the font itself contradicting the license, such as the fstype bits in the os2 table or fields in the name table. -<a href="#l196" class="line" id="l196"> 196</a> -<a href="#l197" class="line" id="l197"> 197</a> 4.2.3 Write an initial FONTLOG.txt for your font and include it in the release package (see Section 6 and Appendix A for details including a template). -<a href="#l198" class="line" id="l198"> 198</a> -<a href="#l199" class="line" id="l199"> 199</a> 4.2.4 Include the relevant practical documentation on the license by adding the current OFL-FAQ.txt file in your package. -<a href="#l200" class="line" id="l200"> 200</a> -<a href="#l201" class="line" id="l201"> 201</a> 4.2.5 If you wish you can use the OFL graphics (http://scripts.sil.org/OFL_logo) on your website. -<a href="#l202" class="line" id="l202"> 202</a> -<a href="#l203" class="line" id="l203"> 203</a> 4.3 Will you make my font OFL for me? -<a href="#l204" class="line" id="l204"> 204</a> We won&#39;t do the work for you. We can, however, try to answer your questions, unfortunately we do not have the resources to review and check your font packages for correct use of the OFL. We recommend you turn to designers, foundries or consulting companies with experience in doing open font design to provide this service to you. -<a href="#l205" class="line" id="l205"> 205</a> -<a href="#l206" class="line" id="l206"> 206</a> 4.4 Will you distribute my OFL font for me? -<a href="#l207" class="line" id="l207"> 207</a> No, although if the font is of sufficient quality and general interest we may include a link to it on our partial list of OFL fonts on the OFL web site. You may wish to consider other open font catalogs or hosting services, such as the Unifont Font Guide (http://unifont.org/fontguide), The League of Movable Type (http://theleagueofmovabletype.com) or the Open Font Library (http://openfontlibrary.org/), which despite the name has no direct relationship to the OFL or SIL. We do not endorse any particular catalog or hosting service - it is your responsibility to determine if the service is right for you and if it treats authors with fairness. -<a href="#l208" class="line" id="l208"> 208</a> -<a href="#l209" class="line" id="l209"> 209</a> 4.5 Why should I use the OFL for my fonts? -<a href="#l210" class="line" id="l210"> 210</a> - to meet needs for fonts that can be modified to support lesser-known languages -<a href="#l211" class="line" id="l211"> 211</a> - to provide a legal and clear way for people to respect your work but still use it (and reduce piracy) -<a href="#l212" class="line" id="l212"> 212</a> - to involve others in your font project -<a href="#l213" class="line" id="l213"> 213</a> - to enable your fonts to be expanded with new weights and improved writing system/language support -<a href="#l214" class="line" id="l214"> 214</a> - to allow more technical font developers to add features to your design (such as OpenType, Graphite or AAT support) -<a href="#l215" class="line" id="l215"> 215</a> - to renew the life of an old font lying on your hard drive with no business model -<a href="#l216" class="line" id="l216"> 216</a> - to allow your font to be included in Libre Software operating systems like Ubuntu -<a href="#l217" class="line" id="l217"> 217</a> - to give your font world status and wide, unrestricted distribution -<a href="#l218" class="line" id="l218"> 218</a> - to educate students about quality typeface and font design -<a href="#l219" class="line" id="l219"> 219</a> - to expand your test base and get more useful feedback -<a href="#l220" class="line" id="l220"> 220</a> - to extend your reach to new markets when users see your metadata and go to your website -<a href="#l221" class="line" id="l221"> 221</a> - to get your font more easily into one of the web font online services -<a href="#l222" class="line" id="l222"> 222</a> - to attract attention for your commercial fonts -<a href="#l223" class="line" id="l223"> 223</a> - to make money through web font services -<a href="#l224" class="line" id="l224"> 224</a> - to make money by bundling fonts with applications -<a href="#l225" class="line" id="l225"> 225</a> - to make money adjusting and extending existing open fonts -<a href="#l226" class="line" id="l226"> 226</a> - to get a better chance that foundations/NGOs/charities/companies who commission fonts will pick you -<a href="#l227" class="line" id="l227"> 227</a> - to be part of a sharing design and development community -<a href="#l228" class="line" id="l228"> 228</a> - to give back and contribute to a growing body of font sources -<a href="#l229" class="line" id="l229"> 229</a> -<a href="#l230" class="line" id="l230"> 230</a> -<a href="#l231" class="line" id="l231"> 231</a> 5 CHOOSING RESERVED FONT NAMES -<a href="#l232" class="line" id="l232"> 232</a> -<a href="#l233" class="line" id="l233"> 233</a> 5.1 What are Reserved Font Names? -<a href="#l234" class="line" id="l234"> 234</a> These are font names, or portions of font names, that the author has chosen to reserve for use only with the Original Version of the font, or for Modified Version(s) created by the original author. -<a href="#l235" class="line" id="l235"> 235</a> -<a href="#l236" class="line" id="l236"> 236</a> 5.2 Why can&#39;t I use the Reserved Font Names in my derivative font names? I&#39;d like people to know where the design came from. -<a href="#l237" class="line" id="l237"> 237</a> The best way to acknowledge the source of the design is to thank the original authors and any other contributors in the files that are distributed with your revised font (although no acknowledgement is required). The FONTLOG is a natural place to do this. Reserved Font Names ensure that the only fonts that have the original names are the unmodified Original Versions. This allows designers to maintain artistic integrity while allowing collaboration to happen. It eliminates potential confusion and name conflicts. When choosing a name, be creative and avoid names that reuse almost all the same letters in the same order or sound like the original. It will help everyone if Original Versions and Modified Versions can easily be distinguished from one another and from other derivatives. Any substitution and matching mechanism is outside the scope of the license. -<a href="#l238" class="line" id="l238"> 238</a> -<a href="#l239" class="line" id="l239"> 239</a> 5.3 What do you mean by &quot;primary name as presented to the user&quot;? Are you referring to the font menu name? -<a href="#l240" class="line" id="l240"> 240</a> Yes, this applies to the font menu name and other mechanisms that specify a font in a document. It would be fine, however, to keep a text reference to the original fonts in the description field, in your modified source file or in documentation provided alongside your derivative as long as no one could be confused that your modified source is the original. But you cannot use the Reserved Font Names in any way to identify the font to the user (unless the Copyright Holder(s) allow(s) it through a separate agreement). Users who install derivatives (Modified Versions) on their systems should not see any of the original Reserved Font Names in their font menus, for example. Again, this is to ensure that users are not confused and do not mistake one font for another and so expect features only another derivative or the Original Version can actually offer. -<a href="#l241" class="line" id="l241"> 241</a> -<a href="#l242" class="line" id="l242"> 242</a> 5.4 Am I not allowed to use any part of the Reserved Font Names? -<a href="#l243" class="line" id="l243"> 243</a> You may not use individual words from the Reserved Font Names, but you would be allowed to use parts of words, as long as you do not use any word from the Reserved Font Names entirely. We do not recommend using parts of words because of potential confusion, but it is allowed. For example, if &quot;Foobar&quot; was a Reserved Font Name, you would be allowed to use &quot;Foo&quot; or &quot;bar&quot;, although we would not recommend it. Such an unfortunate choice would confuse the users of your fonts as well as make it harder for other designers to contribute. -<a href="#l244" class="line" id="l244"> 244</a> -<a href="#l245" class="line" id="l245"> 245</a> 5.5 So what should I, as an author, identify as Reserved Font Names? -<a href="#l246" class="line" id="l246"> 246</a> Original authors are encouraged to name their fonts using clear, distinct names, and only declare the unique parts of the name as Reserved Font Names. For example, the author of a font called &quot;Foobar Sans&quot; would declare &quot;Foobar&quot; as a Reserved Font Name, but not &quot;Sans&quot;, as that is a common typographical term, and may be a useful word to use in a derivative font name. Reserved Font Names should also be single words for simplicity and legibility. A font called &quot;Flowing River&quot; should have Reserved Font Names &quot;Flowing&quot; and &quot;River&quot;, not &quot;Flowing River&quot;. You also need to be very careful about reserving font names which are already linked to trademarks (whether registered or not) which you do not own. -<a href="#l247" class="line" id="l247"> 247</a> -<a href="#l248" class="line" id="l248"> 248</a> 5.6 Do I, as an author, have to identify any Reserved Font Names? -<a href="#l249" class="line" id="l249"> 249</a> No. RFNs are optional and not required, but we encourage you to use them. This is primarily to avoid confusion between your work and Modified Versions. As an author you can release a font under the OFL and not declare any Reserved Font Names. There may be situations where you find that using no RFNs and letting your font be changed and modified - including any kind of modification - without having to change the original name is desirable. However you need to be fully aware of the consequences. There will be no direct way for end-users and other designers to distinguish your Original Version from many Modified Versions that may be created. You have to trust whoever is making the changes and the optimizations to not introduce problematic changes. The RFNs you choose for your own creation have value to you as an author because they allow you to maintain artistic integrity and keep some control over the distribution channel to your end-users. For discussion of RFNs and web fonts see section 2. -<a href="#l250" class="line" id="l250"> 250</a> -<a href="#l251" class="line" id="l251"> 251</a> 5.7 Are any names (such as the main font name) reserved by default? -<a href="#l252" class="line" id="l252"> 252</a> No. That is a change to the license as of version 1.1. If you want any names to be Reserved Font Names, they must be specified after the copyright statement(s). -<a href="#l253" class="line" id="l253"> 253</a> -<a href="#l254" class="line" id="l254"> 254</a> 5.8 Is there any situation in which I can use Reserved Font Names for a Modified Version? -<a href="#l255" class="line" id="l255"> 255</a> The Copyright Holder(s) can give certain trusted parties the right to use any of the Reserved Font Names through separate written agreements. For example, even if &quot;Foobar&quot; is a RFN, you could write up an agreement to give company &quot;XYZ&quot; the right to distribute a modified version with a name that includes &quot;Foobar&quot;. This allows for freedom without confusion. The existence of such an agreement should be made as clear as possible to downstream users and designers in the distribution package and the relevant documentation. They need to know if they are a party to the agreement or not and what they are practically allowed to do or not even if all the details of the agreement are not public. -<a href="#l256" class="line" id="l256"> 256</a> -<a href="#l257" class="line" id="l257"> 257</a> 5.9 Do font rebuilds require a name change? Do I have to change the name of the font when my packaging workflow includes a full rebuild from source? -<a href="#l258" class="line" id="l258"> 258</a> Yes, all rebuilds which change the font data and the smart code are Modified Versions and the requirements of the OFL apply: you need to respect what the Author(s) have chosen in terms of Reserved Font Names. However if a package (or installer) is simply a wrapper or a compressed structure around the final font - leaving them intact on the inside - then no name change is required. Please get in touch with the author(s) and copyright holder(s) to inquire about the presence of font sources beyond the final font file(s) and the recommended build path. That build path may very well be non-trivial and hard to reproduce accurately by the maintainer. If a full font build path is made available by the upstream author(s) please be aware that any regressions and changes you may introduce when doing a rebuild for packaging purposes is your own responsibility as a package maintainer since you are effectively creating a separate branch. You should make it very clear to your users that your rebuilt version is not the canonical one from upstream. -<a href="#l259" class="line" id="l259"> 259</a> -<a href="#l260" class="line" id="l260"> 260</a> 5.10 Can I add other Reserved Font Names when making a derivative font? -<a href="#l261" class="line" id="l261"> 261</a> Yes. List your additional Reserved Font Names after your additional copyright statement, as indicated with example placeholders at the top of the OFL.txt file. Be sure you do not remove any existing RFNs but only add your own. RFN statements should be placed next to the copyright statement of the relevant author as indicated in the OFL.txt template to make them visible to designers wishing to make their separate version. -<a href="#l262" class="line" id="l262"> 262</a> -<a href="#l263" class="line" id="l263"> 263</a> -<a href="#l264" class="line" id="l264"> 264</a> 6 ABOUT THE FONTLOG -<a href="#l265" class="line" id="l265"> 265</a> -<a href="#l266" class="line" id="l266"> 266</a> 6.1 What is this FONTLOG thing exactly? -<a href="#l267" class="line" id="l267"> 267</a> It has three purposes: 1) to provide basic information on the font to users and other designers and developers, 2) to document changes that have been made to the font or accompanying files, either by the original authors or others, and 3) to provide a place to acknowledge authors and other contributors. Please use it! -<a href="#l268" class="line" id="l268"> 268</a> -<a href="#l269" class="line" id="l269"> 269</a> 6.2 Is the FONTLOG required? -<a href="#l270" class="line" id="l270"> 270</a> It is not a requirement of the license, but we strongly recommend you have one. -<a href="#l271" class="line" id="l271"> 271</a> -<a href="#l272" class="line" id="l272"> 272</a> 6.3 Am I required to update the FONTLOG when making Modified Versions? -<a href="#l273" class="line" id="l273"> 273</a> No, but users, designers and other developers might get very frustrated with you if you don&#39;t. People need to know how derivative fonts differ from the original, and how to take advantage of the changes, or build on them. There are utilities that can help create and maintain a FONTLOG, such as the FONTLOG support in FontForge. -<a href="#l274" class="line" id="l274"> 274</a> -<a href="#l275" class="line" id="l275"> 275</a> 6.4 What should the FONTLOG look like? -<a href="#l276" class="line" id="l276"> 276</a> It is typically a separate text file (FONTLOG.txt), but can take other formats. It commonly includes these four sections: -<a href="#l277" class="line" id="l277"> 277</a> -<a href="#l278" class="line" id="l278"> 278</a> - brief header describing the FONTLOG itself and name of the font family -<a href="#l279" class="line" id="l279"> 279</a> - Basic Font Information - description of the font family, purpose and breadth -<a href="#l280" class="line" id="l280"> 280</a> - ChangeLog - chronological listing of changes -<a href="#l281" class="line" id="l281"> 281</a> - Acknowledgements - list of authors and contributors with contact information -<a href="#l282" class="line" id="l282"> 282</a> -<a href="#l283" class="line" id="l283"> 283</a> It could also include other sections, such as: where to find documentation, how to make contributions, information on contributing organizations, source code details, and a short design guide. See Appendix A for an example FONTLOG. -<a href="#l284" class="line" id="l284"> 284</a> -<a href="#l285" class="line" id="l285"> 285</a> -<a href="#l286" class="line" id="l286"> 286</a> 7 MAKING CONTRIBUTIONS TO OFL PROJECTS -<a href="#l287" class="line" id="l287"> 287</a> -<a href="#l288" class="line" id="l288"> 288</a> 7.1 Can I contribute work to OFL projects? -<a href="#l289" class="line" id="l289"> 289</a> In many cases, yes. It is common for OFL fonts to be developed by a team of people who welcome contributions from the wider community. Contact the original authors for specific information on how to participate in their projects. -<a href="#l290" class="line" id="l290"> 290</a> -<a href="#l291" class="line" id="l291"> 291</a> 7.2 Why should I contribute my changes back to the original authors? -<a href="#l292" class="line" id="l292"> 292</a> It would benefit many people if you contributed back in response to what you&#39;ve received. Your contributions and improvements to the fonts and other components could be a tremendous help and would encourage others to contribute as well and &#39;give back&#39;. You will then benefit from other people&#39;s contributions as well. Sometimes maintaining your own separate version takes more effort than merging back with the original. Be aware that any contributions, however, must be either your own original creation or work that you own, and you may be asked to affirm that clearly when you contribute. -<a href="#l293" class="line" id="l293"> 293</a> -<a href="#l294" class="line" id="l294"> 294</a> 7.3 I&#39;ve made some very nice improvements to the font. Will you consider adopting them and putting them into future Original Versions? -<a href="#l295" class="line" id="l295"> 295</a> Most authors would be very happy to receive such contributions. Keep in mind that it is unlikely that they would want to incorporate major changes that would require additional work on their end. Any contributions would likely need to be made for all the fonts in a family and match the overall design and style. Authors are encouraged to include a guide to the design with the fonts. It would also help to have contributions submitted as patches or clearly marked changes - the use of smart source revision control systems like subversion, mercurial, git or bzr is a good idea. Please follow the recommendations given by the author(s) in terms of preferred source formats and configuration parameters for sending contributions. If this is not indicated in a FONTLOG or other documentation of the font, consider asking them directly. Examples of useful contributions are bug fixes, additional glyphs, stylistic alternates (and the smart font code to access them) or improved hinting. Keep in mind that some kinds of changes (esp. hinting) may be technically difficult to integrate. -<a href="#l296" class="line" id="l296"> 296</a> -<a href="#l297" class="line" id="l297"> 297</a> 7.4 How can I financially support the development of OFL fonts? -<a href="#l298" class="line" id="l298"> 298</a> It is likely that most authors of OFL fonts would accept financial contributions - contact them for instructions on how to do this. Such contributions would support future development. You can also pay for others to enhance the fonts and contribute the results back to the original authors for inclusion in the Original Version. -<a href="#l299" class="line" id="l299"> 299</a> -<a href="#l300" class="line" id="l300"> 300</a> -<a href="#l301" class="line" id="l301"> 301</a> 8 ABOUT THE LICENSE ITSELF -<a href="#l302" class="line" id="l302"> 302</a> -<a href="#l303" class="line" id="l303"> 303</a> 8.1 I see that this is version 1.1 of the license. Will there be later changes? -<a href="#l304" class="line" id="l304"> 304</a> Version 1.1 is the first minor revision of the OFL. We are confident that version 1.1 will meet most needs, but are open to future improvements. Any revisions would be for future font releases, and previously existing licenses would remain in effect. No retroactive changes are possible, although the Copyright Holder(s) can re-release the font under a revised OFL. All versions will be available on our web site: http://scripts.sil.org/OFL. -<a href="#l305" class="line" id="l305"> 305</a> -<a href="#l306" class="line" id="l306"> 306</a> 8.2 Does this license restrict the rights of the Copyright Holder(s)? -<a href="#l307" class="line" id="l307"> 307</a> No. The Copyright Holder(s) still retain(s) all the rights to their creation; they are only releasing a portion of it for use in a specific way. For example, the Copyright Holder(s) may choose to release a &#39;basic&#39; version of their font under the OFL, but sell a restricted &#39;enhanced&#39; version under a different license. They may also choose to release the same font under both the OFL and some other license. Only the Copyright Holder(s) can do this, and doing so does not change the terms of the OFL as it applies to that font. -<a href="#l308" class="line" id="l308"> 308</a> -<a href="#l309" class="line" id="l309"> 309</a> 8.3 Is the OFL a contract or a license? -<a href="#l310" class="line" id="l310"> 310</a> The OFL is a worldwide license based on international copyright agreements and conventions. It is not a contract and so does not require you to sign it to have legal validity. By using, modifying and redistributing components under the OFL you indicate that you accept the license. -<a href="#l311" class="line" id="l311"> 311</a> -<a href="#l312" class="line" id="l312"> 312</a> 8.4 I really like the terms of the OFL, but want to change it a little. Am I allowed to take ideas and actual wording from the OFL and put them into my own custom license for distributing my fonts? -<a href="#l313" class="line" id="l313"> 313</a> We strongly recommend against creating your very own unique open licensing model. Using a modified or derivative license will likely cut you off - along with the font(s) under that license - from the community of designers using the OFL, potentially expose you and your users to legal liabilities, and possibly put your work and rights at risk. The OFL went though a community and legal review process that took years of effort, and that review is only applicable to an unmodified OFL. The text of the OFL has been written by SIL (with review and consultation from the community) and is copyright (c) 2005-2013 SIL International. You may re-use the ideas and wording (in part, not in whole) in another non-proprietary license provided that you call your license by another unambiguous name, that you do not use the preamble, that you do not mention SIL and that you clearly present your license as different from the OFL so as not to cause confusion by being too similar to the original. If you feel the OFL does not meet your needs for an open license, please contact us. -<a href="#l314" class="line" id="l314"> 314</a> -<a href="#l315" class="line" id="l315"> 315</a> 8.5 Can I translate the license and the FAQ into other languages? -<a href="#l316" class="line" id="l316"> 316</a> SIL certainly recognises the need for people who are not familiar with English to be able to understand the OFL and its use. Making the license very clear and readable has been a key goal for the OFL, but we know that people understand their own language best. -<a href="#l317" class="line" id="l317"> 317</a> -<a href="#l318" class="line" id="l318"> 318</a> If you are an experienced translator, you are very welcome to translate the OFL and OFL-FAQ so that designers and users in your language community can understand the license better. But only the original English version of the license has legal value and has been approved by the community. Translations do not count as legal substitutes and should only serve as a way to explain the original license. SIL - as the author and steward of the license for the community at large - does not approve any translation of the OFL as legally valid because even small translation ambiguities could be abused and create problems. -<a href="#l319" class="line" id="l319"> 319</a> -<a href="#l320" class="line" id="l320"> 320</a> SIL gives permission to publish unofficial translations into other languages provided that they comply with the following guidelines: -<a href="#l321" class="line" id="l321"> 321</a> -<a href="#l322" class="line" id="l322"> 322</a> - Put the following disclaimer in both English and the target language stating clearly that the translation is unofficial: -<a href="#l323" class="line" id="l323"> 323</a> -<a href="#l324" class="line" id="l324"> 324</a> &quot;This is an unofficial translation of the SIL Open Font License into &lt;language_name&gt;. It was not published by SIL International, and does not legally state the distribution terms for fonts that use the OFL. A release under the OFL is only valid when using the original English text. However, we recognize that this unofficial translation will help users and designers not familiar with English to better understand and use the OFL. We encourage designers who consider releasing their creation under the OFL to read the OFL-FAQ in their own language if it is available. Please go to http://scripts.sil.org/OFL for the official version of the license and the accompanying OFL-FAQ.&quot; -<a href="#l325" class="line" id="l325"> 325</a> -<a href="#l326" class="line" id="l326"> 326</a> - Keep your unofficial translation current and update it at our request if needed, for example if there is any ambiguity which could lead to confusion. -<a href="#l327" class="line" id="l327"> 327</a> -<a href="#l328" class="line" id="l328"> 328</a> If you start such a unofficial translation effort of the OFL and OFL-FAQ please let us know. -<a href="#l329" class="line" id="l329"> 329</a> -<a href="#l330" class="line" id="l330"> 330</a> 8.6 Does the OFL have an explicit expiration term? -<a href="#l331" class="line" id="l331"> 331</a> No, the implicit intent of the OFL is that the permissions granted are perpetual and irrevocable. -<a href="#l332" class="line" id="l332"> 332</a> -<a href="#l333" class="line" id="l333"> 333</a> -<a href="#l334" class="line" id="l334"> 334</a> 9 ABOUT SIL INTERNATIONAL -<a href="#l335" class="line" id="l335"> 335</a> -<a href="#l336" class="line" id="l336"> 336</a> 9.1 Who is SIL International and what do they do? -<a href="#l337" class="line" id="l337"> 337</a> SIL serves language communities worldwide, building their capacity for sustainable language development, by means of research, translation, training and materials development. SIL makes its services available to all without regard to religious belief, political ideology, gender, race, or ethnic background. SIL&#39;s members and volunteers share a Christian commitment. -<a href="#l338" class="line" id="l338"> 338</a> -<a href="#l339" class="line" id="l339"> 339</a> 9.2 What does this have to do with font licensing? -<a href="#l340" class="line" id="l340"> 340</a> The ability to read, write, type and publish in one&#39;s own language is one of the most critical needs for millions of people around the world. This requires fonts that are widely available and support lesser-known languages. SIL develops - and encourages others to develop - a complete stack of writing systems implementation components available under open licenses. This open stack includes input methods, smart fonts, smart rendering libraries and smart applications. There has been a need for a common open license that is specifically applicable to fonts and related software (a crucial component of this stack), so SIL developed the SIL Open Font License with the help of the Free/Libre and Open Source Software community. -<a href="#l341" class="line" id="l341"> 341</a> -<a href="#l342" class="line" id="l342"> 342</a> 9.3 How can I contact SIL? -<a href="#l343" class="line" id="l343"> 343</a> Our main web site is: http://www.sil.org/ -<a href="#l344" class="line" id="l344"> 344</a> Our site about complex scripts is: http://scripts.sil.org/ -<a href="#l345" class="line" id="l345"> 345</a> Information about this license (and contact information) is at: http://scripts.sil.org/OFL -<a href="#l346" class="line" id="l346"> 346</a> -<a href="#l347" class="line" id="l347"> 347</a> -<a href="#l348" class="line" id="l348"> 348</a> APPENDIX A - FONTLOG EXAMPLE -<a href="#l349" class="line" id="l349"> 349</a> -<a href="#l350" class="line" id="l350"> 350</a> Here is an example of the recommended format for a FONTLOG, although other formats are allowed. -<a href="#l351" class="line" id="l351"> 351</a> -<a href="#l352" class="line" id="l352"> 352</a> ----- -<a href="#l353" class="line" id="l353"> 353</a> FONTLOG for the GlobalFontFamily fonts -<a href="#l354" class="line" id="l354"> 354</a> -<a href="#l355" class="line" id="l355"> 355</a> This file provides detailed information on the GlobalFontFamily Font Software. This information should be distributed along with the GlobalFontFamily fonts and any derivative works. -<a href="#l356" class="line" id="l356"> 356</a> -<a href="#l357" class="line" id="l357"> 357</a> Basic Font Information -<a href="#l358" class="line" id="l358"> 358</a> -<a href="#l359" class="line" id="l359"> 359</a> GlobalFontFamily is a Unicode typeface family that supports all languages that use the Latin script and its variants, and could be expanded to support other scripts. -<a href="#l360" class="line" id="l360"> 360</a> -<a href="#l361" class="line" id="l361"> 361</a> NewWorldFontFamily is based on the GlobalFontFamily and also supports Greek, Hebrew, Cyrillic and Armenian. -<a href="#l362" class="line" id="l362"> 362</a> -<a href="#l363" class="line" id="l363"> 363</a> More specifically, this release supports the following Unicode ranges... -<a href="#l364" class="line" id="l364"> 364</a> This release contains... -<a href="#l365" class="line" id="l365"> 365</a> Documentation can be found at... -<a href="#l366" class="line" id="l366"> 366</a> To contribute to the project... -<a href="#l367" class="line" id="l367"> 367</a> -<a href="#l368" class="line" id="l368"> 368</a> ChangeLog -<a href="#l369" class="line" id="l369"> 369</a> -<a href="#l370" class="line" id="l370"> 370</a> 10 December 2010 (Fred Foobar) GlobalFontFamily-devel version 1.4 -<a href="#l371" class="line" id="l371"> 371</a> - fix new build and testing system (bug #123456) -<a href="#l372" class="line" id="l372"> 372</a> -<a href="#l373" class="line" id="l373"> 373</a> 1 August 2008 (Tom Parker) GlobalFontFamily version 1.2.1 -<a href="#l374" class="line" id="l374"> 374</a> - Tweaked the smart font code (Branch merged with trunk version) -<a href="#l375" class="line" id="l375"> 375</a> - Provided improved build and debugging environment for smart behaviours -<a href="#l376" class="line" id="l376"> 376</a> -<a href="#l377" class="line" id="l377"> 377</a> 7 February 2007 (Pat Johnson) NewWorldFontFamily Version 1.3 -<a href="#l378" class="line" id="l378"> 378</a> - Added Greek and Cyrillic glyphs -<a href="#l379" class="line" id="l379"> 379</a> -<a href="#l380" class="line" id="l380"> 380</a> 7 March 2006 (Fred Foobar) NewWorldFontFamily Version 1.2 -<a href="#l381" class="line" id="l381"> 381</a> - Tweaked contextual behaviours -<a href="#l382" class="line" id="l382"> 382</a> -<a href="#l383" class="line" id="l383"> 383</a> 1 Feb 2005 (Jane Doe) NewWorldFontFamily Version 1.1 -<a href="#l384" class="line" id="l384"> 384</a> - Improved build script performance and verbosity -<a href="#l385" class="line" id="l385"> 385</a> - Extended the smart code documentation -<a href="#l386" class="line" id="l386"> 386</a> - Corrected minor typos in the documentation -<a href="#l387" class="line" id="l387"> 387</a> - Fixed position of combining inverted breve below (U+032F) -<a href="#l388" class="line" id="l388"> 388</a> - Added OpenType/Graphite smart code for Armenian -<a href="#l389" class="line" id="l389"> 389</a> - Added Armenian glyphs (U+0531 -&gt; U+0587) -<a href="#l390" class="line" id="l390"> 390</a> - Released as &quot;NewWorldFontFamily&quot; -<a href="#l391" class="line" id="l391"> 391</a> -<a href="#l392" class="line" id="l392"> 392</a> 1 Jan 2005 (Joe Smith) GlobalFontFamily Version 1.0 -<a href="#l393" class="line" id="l393"> 393</a> - Initial release -<a href="#l394" class="line" id="l394"> 394</a> -<a href="#l395" class="line" id="l395"> 395</a> Acknowledgements -<a href="#l396" class="line" id="l396"> 396</a> -<a href="#l397" class="line" id="l397"> 397</a> If you make modifications be sure to add your name (N), email (E), web-address (if you have one) (W) and description (D). This list is in alphabetical order. -<a href="#l398" class="line" id="l398"> 398</a> -<a href="#l399" class="line" id="l399"> 399</a> N: Jane Doe -<a href="#l400" class="line" id="l400"> 400</a> E: jane@university.edu -<a href="#l401" class="line" id="l401"> 401</a> W: http://art.university.edu/projects/fonts -<a href="#l402" class="line" id="l402"> 402</a> D: Contributor - Armenian glyphs and code -<a href="#l403" class="line" id="l403"> 403</a> -<a href="#l404" class="line" id="l404"> 404</a> N: Fred Foobar -<a href="#l405" class="line" id="l405"> 405</a> E: fred@foobar.org -<a href="#l406" class="line" id="l406"> 406</a> W: http://foobar.org -<a href="#l407" class="line" id="l407"> 407</a> D: Contributor - misc Graphite fixes -<a href="#l408" class="line" id="l408"> 408</a> -<a href="#l409" class="line" id="l409"> 409</a> N: Pat Johnson -<a href="#l410" class="line" id="l410"> 410</a> E: pat@fontstudio.org -<a href="#l411" class="line" id="l411"> 411</a> W: http://pat.fontstudio.org -<a href="#l412" class="line" id="l412"> 412</a> D: Designer - Greek &amp; Cyrillic glyphs based on Roman design -<a href="#l413" class="line" id="l413"> 413</a> -<a href="#l414" class="line" id="l414"> 414</a> N: Tom Parker -<a href="#l415" class="line" id="l415"> 415</a> E: tom@company.com -<a href="#l416" class="line" id="l416"> 416</a> W: http://www.company.com/tom/projects/fonts -<a href="#l417" class="line" id="l417"> 417</a> D: Engineer - original smart font code -<a href="#l418" class="line" id="l418"> 418</a> -<a href="#l419" class="line" id="l419"> 419</a> N: Joe Smith -<a href="#l420" class="line" id="l420"> 420</a> E: joe@fontstudio.org -<a href="#l421" class="line" id="l421"> 421</a> W: http://joe.fontstudio.org -<a href="#l422" class="line" id="l422"> 422</a> D: Designer - original Roman glyphs -<a href="#l423" class="line" id="l423"> 423</a> -<a href="#l424" class="line" id="l424"> 424</a> Fontstudio.org is an not-for-profit design group whose purpose is... -<a href="#l425" class="line" id="l425"> 425</a> Foobar.org is a distributed community of developers... -<a href="#l426" class="line" id="l426"> 426</a> Company.com is a small business who likes to support community designers... -<a href="#l427" class="line" id="l427"> 427</a> University.edu is a renowned educational institution with a strong design department... -<a href="#l428" class="line" id="l428"> 428</a> ----- -<a href="#l429" class="line" id="l429"> 429</a> -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/Terminus-Bold.ttf.html b/public_html/static/git/file/public_html/static/fonts/Terminus-Bold.ttf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Terminus-Bold.ttf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Terminus-Bold.ttf (308732B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/Terminus-Italic.ttf.html b/public_html/static/git/file/public_html/static/fonts/Terminus-Italic.ttf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Terminus-Italic.ttf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Terminus-Italic.ttf (297620B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/Terminus.ttf.html b/public_html/static/git/file/public_html/static/fonts/Terminus.ttf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Terminus.ttf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Terminus.ttf (308056B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Black.otf.html b/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Black.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>._Now-Black.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> ._Now-Black.otf (239B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Bold.otf.html b/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Bold.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>._Now-Bold.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> ._Now-Bold.otf (239B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Light.otf.html b/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Light.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>._Now-Light.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> ._Now-Light.otf (239B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Medium.otf.html b/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Medium.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>._Now-Medium.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> ._Now-Medium.otf (239B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Regular.otf.html b/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Regular.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>._Now-Regular.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> ._Now-Regular.otf (239B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Thin.otf.html b/public_html/static/git/file/public_html/static/fonts/__MACOSX/._Now-Thin.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>._Now-Thin.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> ._Now-Thin.otf (239B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/__MACOSX/._OFL-FAQ.txt.html b/public_html/static/git/file/public_html/static/fonts/__MACOSX/._OFL-FAQ.txt.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>._OFL-FAQ.txt - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> ._OFL-FAQ.txt (239B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/fonts/Terminus-Bold.ttf.html b/public_html/static/git/file/public_html/static/fonts/fonts/Terminus-Bold.ttf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Terminus-Bold.ttf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Terminus-Bold.ttf (308732B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/fonts/Terminus-Italic.ttf.html b/public_html/static/git/file/public_html/static/fonts/fonts/Terminus-Italic.ttf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Terminus-Italic.ttf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Terminus-Italic.ttf (297620B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/fonts/Terminus.ttf.html b/public_html/static/git/file/public_html/static/fonts/fonts/Terminus.ttf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Terminus.ttf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> Terminus.ttf (308056B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/fonts/lmmono10-italic.otf.html b/public_html/static/git/file/public_html/static/fonts/fonts/lmmono10-italic.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>lmmono10-italic.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> lmmono10-italic.otf (63584B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/fonts/lmmono10-regular.otf.html b/public_html/static/git/file/public_html/static/fonts/fonts/lmmono10-regular.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>lmmono10-regular.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> lmmono10-regular.otf (64684B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/fonts/roberta.ttf.html b/public_html/static/git/file/public_html/static/fonts/fonts/roberta.ttf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>roberta.ttf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../../"><img src="../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../../log.html">Log</a> | <a href="../../../../../files.html">Files</a> | <a href="../../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> roberta.ttf (48640B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/lmmono10-italic.otf.html b/public_html/static/git/file/public_html/static/fonts/lmmono10-italic.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>lmmono10-italic.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> lmmono10-italic.otf (63584B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/lmmono10-regular.otf.html b/public_html/static/git/file/public_html/static/fonts/lmmono10-regular.otf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>lmmono10-regular.otf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> lmmono10-regular.otf (64684B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/now.zip.html b/public_html/static/git/file/public_html/static/fonts/now.zip.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>now.zip - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> now.zip (142727B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/fonts/roberta.ttf.html b/public_html/static/git/file/public_html/static/fonts/roberta.ttf.html @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>roberta.ttf - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../../"><img src="../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../../log.html">Log</a> | <a href="../../../../files.html">Files</a> | <a href="../../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> roberta.ttf (48640B)</p><hr/><p>Binary file.</p> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/scrollcookie.js.html b/public_html/static/git/file/public_html/static/scrollcookie.js.html @@ -1,31 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>scrollcookie.js - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> scrollcookie.js (262B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $(window).on(&quot;scroll&quot;, function() { -<a href="#l2" class="line" id="l2"> 2</a> $.cookie(&quot;tempScrollTop&quot;, $(window).scrollTop()); -<a href="#l3" class="line" id="l3"> 3</a> }); -<a href="#l4" class="line" id="l4"> 4</a> $(function() { -<a href="#l5" class="line" id="l5"> 5</a> if ($.cookie(&quot;tempScrollTop&quot;)) { -<a href="#l6" class="line" id="l6"> 6</a> $(window).scrollTop($.cookie(&quot;tempScrollTop&quot;)); -<a href="#l7" class="line" id="l7"> 7</a> alert(&quot;loaded postion : &quot; + $.cookie(&quot;tempScrollTop&quot;)); -<a href="#l8" class="line" id="l8"> 8</a> } -<a href="#l9" class="line" id="l9"> 9</a> }); -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/static/style.css.html b/public_html/static/git/file/public_html/static/style.css.html @@ -1,250 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>style.css - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> style.css (3513B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> @font-face{ -<a href="#l2" class="line" id="l2"> 2</a> font-family: &quot;Latin-Mono-Regular&quot;; -<a href="#l3" class="line" id="l3"> 3</a> src: url(&#39;fonts/lmmono10-regular.otf&#39;), -<a href="#l4" class="line" id="l4"> 4</a> url(&#39;fonts/lmmono10-regular.otf&#39;); /* IE */ -<a href="#l5" class="line" id="l5"> 5</a> } -<a href="#l6" class="line" id="l6"> 6</a> -<a href="#l7" class="line" id="l7"> 7</a> @font-face{ -<a href="#l8" class="line" id="l8"> 8</a> font-family: &quot;Latin-Mono-Italic&quot;; -<a href="#l9" class="line" id="l9"> 9</a> src: url(&#39;fonts/lmmono10-italic.otf&#39;), -<a href="#l10" class="line" id="l10"> 10</a> url(&#39;fonts/lmmono10-italic.otf&#39;); /* IE */ -<a href="#l11" class="line" id="l11"> 11</a> } -<a href="#l12" class="line" id="l12"> 12</a> -<a href="#l13" class="line" id="l13"> 13</a> @font-face{ -<a href="#l14" class="line" id="l14"> 14</a> font-family: &quot;Roberta&quot;; -<a href="#l15" class="line" id="l15"> 15</a> src: url(&#39;fonts/roberta.ttf&#39;), -<a href="#l16" class="line" id="l16"> 16</a> url(&#39;fonts/roberta.ttf&#39;); /* IE */ -<a href="#l17" class="line" id="l17"> 17</a> } -<a href="#l18" class="line" id="l18"> 18</a> -<a href="#l19" class="line" id="l19"> 19</a> /*use line-height*/ -<a href="#l20" class="line" id="l20"> 20</a> .font{ -<a href="#l21" class="line" id="l21"> 21</a> line-height: 1px; -<a href="#l22" class="line" id="l22"> 22</a> letter-spacing: 1px; -<a href="#l23" class="line" id="l23"> 23</a> } -<a href="#l24" class="line" id="l24"> 24</a> -<a href="#l25" class="line" id="l25"> 25</a> @viewport -<a href="#l26" class="line" id="l26"> 26</a> { -<a href="#l27" class="line" id="l27"> 27</a> width: device-width ; -<a href="#l28" class="line" id="l28"> 28</a> zoom: 1.0 ; -<a href="#l29" class="line" id="l29"> 29</a> } -<a href="#l30" class="line" id="l30"> 30</a> -<a href="#l31" class="line" id="l31"> 31</a> html { -<a href="#l32" class="line" id="l32"> 32</a> scroll-behavior: smooth; -<a href="#l33" class="line" id="l33"> 33</a> } -<a href="#l34" class="line" id="l34"> 34</a> -<a href="#l35" class="line" id="l35"> 35</a> body -<a href="#l36" class="line" id="l36"> 36</a> { -<a href="#l37" class="line" id="l37"> 37</a> margin: 20px auto; -<a href="#l38" class="line" id="l38"> 38</a> font-size: 16px; -<a href="#l39" class="line" id="l39"> 39</a> width: 100%; -<a href="#l40" class="line" id="l40"> 40</a> text-align: center; -<a href="#l41" class="line" id="l41"> 41</a> background-color:#000; -<a href="#l42" class="line" id="l42"> 42</a> color: #f5f5f5; -<a href="#l43" class="line" id="l43"> 43</a> font-family: &quot;Latin-Mono-Regular&quot;; -<a href="#l44" class="line" id="l44"> 44</a> } -<a href="#l45" class="line" id="l45"> 45</a> -<a href="#l46" class="line" id="l46"> 46</a> p{ -<a href="#l47" class="line" id="l47"> 47</a> margin:1px 0; -<a href="#l48" class="line" id="l48"> 48</a> } -<a href="#l49" class="line" id="l49"> 49</a> -<a href="#l50" class="line" id="l50"> 50</a> h1{ -<a href="#l51" class="line" id="l51"> 51</a> margin:1px 0; -<a href="#l52" class="line" id="l52"> 52</a> font-size: 60px; -<a href="#l53" class="line" id="l53"> 53</a> font-family: &quot;Latin-Mono-Regular&quot;; -<a href="#l54" class="line" id="l54"> 54</a> font-style: none; -<a href="#l55" class="line" id="l55"> 55</a> line-height: 42px; -<a href="#l56" class="line" id="l56"> 56</a> font-margin: 0px; -<a href="#l57" class="line" id="l57"> 57</a> } -<a href="#l58" class="line" id="l58"> 58</a> -<a href="#l59" class="line" id="l59"> 59</a> h2{ -<a href="#l60" class="line" id="l60"> 60</a> margin:1px 0; -<a href="#l61" class="line" id="l61"> 61</a> color:#FCD612; -<a href="#l62" class="line" id="l62"> 62</a> font-size: 30px; -<a href="#l63" class="line" id="l63"> 63</a> font-family: &quot;Latin-Mono-Regular&quot;; -<a href="#l64" class="line" id="l64"> 64</a> line-height: 30px; -<a href="#l65" class="line" id="l65"> 65</a> font-margin: 0px; -<a href="#l66" class="line" id="l66"> 66</a> } -<a href="#l67" class="line" id="l67"> 67</a> h3{ -<a href="#l68" class="line" id="l68"> 68</a> margin:1px 0; -<a href="#l69" class="line" id="l69"> 69</a> font-size: 30px; -<a href="#l70" class="line" id="l70"> 70</a> font-family: &quot;Latin-Mono-Regular&quot;; -<a href="#l71" class="line" id="l71"> 71</a> font-style: none; -<a href="#l72" class="line" id="l72"> 72</a> } -<a href="#l73" class="line" id="l73"> 73</a> h4{ -<a href="#l74" class="line" id="l74"> 74</a> margin:1px 0; -<a href="#l75" class="line" id="l75"> 75</a> font-size: 20px; -<a href="#l76" class="line" id="l76"> 76</a> font-family: &quot;Latin-Mono-Italic&quot;; -<a href="#l77" class="line" id="l77"> 77</a> font-style: none; -<a href="#l78" class="line" id="l78"> 78</a> } -<a href="#l79" class="line" id="l79"> 79</a> -<a href="#l80" class="line" id="l80"> 80</a> a{ -<a href="#l81" class="line" id="l81"> 81</a> color:#FCD612; -<a href="#l82" class="line" id="l82"> 82</a> } -<a href="#l83" class="line" id="l83"> 83</a> -<a href="#l84" class="line" id="l84"> 84</a> #logocontainer -<a href="#l85" class="line" id="l85"> 85</a> { -<a href="#l86" class="line" id="l86"> 86</a> margin: 0px auto; -<a href="#l87" class="line" id="l87"> 87</a> width: 100%; -<a href="#l88" class="line" id="l88"> 88</a> height: 100%; -<a href="#l89" class="line" id="l89"> 89</a> text-align: center; -<a href="#l90" class="line" id="l90"> 90</a> vertical-align: middle; -<a href="#l91" class="line" id="l91"> 91</a> } -<a href="#l92" class="line" id="l92"> 92</a> -<a href="#l93" class="line" id="l93"> 93</a> #logo -<a href="#l94" class="line" id="l94"> 94</a> { -<a href="#l95" class="line" id="l95"> 95</a> margin: 0px auto; -<a href="#l96" class="line" id="l96"> 96</a> font-weight: normal; -<a href="#l97" class="line" id="l97"> 97</a> width: 90%; -<a href="#l98" class="line" id="l98"> 98</a> } -<a href="#l99" class="line" id="l99"> 99</a> -<a href="#l100" class="line" id="l100"> 100</a> #logo2 -<a href="#l101" class="line" id="l101"> 101</a> { -<a href="#l102" class="line" id="l102"> 102</a> margin: 0px auto; -<a href="#l103" class="line" id="l103"> 103</a> width: 200px; -<a href="#l104" class="line" id="l104"> 104</a> } -<a href="#l105" class="line" id="l105"> 105</a> -<a href="#l106" class="line" id="l106"> 106</a> -<a href="#l107" class="line" id="l107"> 107</a> #container -<a href="#l108" class="line" id="l108"> 108</a> { -<a href="#l109" class="line" id="l109"> 109</a> margin: 0px auto; -<a href="#l110" class="line" id="l110"> 110</a> width: 100%; -<a href="#l111" class="line" id="l111"> 111</a> text-align: center; -<a href="#l112" class="line" id="l112"> 112</a> vertical-align: middle; -<a href="#l113" class="line" id="l113"> 113</a> } -<a href="#l114" class="line" id="l114"> 114</a> -<a href="#l115" class="line" id="l115"> 115</a> #bag -<a href="#l116" class="line" id="l116"> 116</a> { -<a href="#l117" class="line" id="l117"> 117</a> margin: 0px auto; -<a href="#l118" class="line" id="l118"> 118</a> position:fixed; -<a href="#l119" class="line" id="l119"> 119</a> bottom:0; -<a href="#l120" class="line" id="l120"> 120</a> width:100%; -<a href="#l121" class="line" id="l121"> 121</a> background:#800080; -<a href="#l122" class="line" id="l122"> 122</a> } -<a href="#l123" class="line" id="l123"> 123</a> -<a href="#l124" class="line" id="l124"> 124</a> #insidebag -<a href="#l125" class="line" id="l125"> 125</a> { -<a href="#l126" class="line" id="l126"> 126</a> margin: 10px auto; -<a href="#l127" class="line" id="l127"> 127</a> font-size: 16px; -<a href="#l128" class="line" id="l128"> 128</a> width:100%; -<a href="#l129" class="line" id="l129"> 129</a> } -<a href="#l130" class="line" id="l130"> 130</a> -<a href="#l131" class="line" id="l131"> 131</a> table, tbody, tr, td -<a href="#l132" class="line" id="l132"> 132</a> { -<a href="#l133" class="line" id="l133"> 133</a> width: 100%; -<a href="#l134" class="line" id="l134"> 134</a> } -<a href="#l135" class="line" id="l135"> 135</a> -<a href="#l136" class="line" id="l136"> 136</a> input, select -<a href="#l137" class="line" id="l137"> 137</a> { -<a href="#l138" class="line" id="l138"> 138</a> padding: 4px; -<a href="#l139" class="line" id="l139"> 139</a> color: #ff0000; -<a href="#l140" class="line" id="l140"> 140</a> background-color: #111; -<a href="#l141" class="line" id="l141"> 141</a> font-size: 18px; -<a href="#l142" class="line" id="l142"> 142</a> border: 0px; -<a href="#l143" class="line" id="l143"> 143</a> width: 100%; -<a href="#l144" class="line" id="l144"> 144</a> } -<a href="#l145" class="line" id="l145"> 145</a> -<a href="#l146" class="line" id="l146"> 146</a> textarea -<a href="#l147" class="line" id="l147"> 147</a> { -<a href="#l148" class="line" id="l148"> 148</a> padding: 4px; -<a href="#l149" class="line" id="l149"> 149</a> color: #ff0000; -<a href="#l150" class="line" id="l150"> 150</a> background-color: #111; -<a href="#l151" class="line" id="l151"> 151</a> font-size: 18px; -<a href="#l152" class="line" id="l152"> 152</a> border: 0px; -<a href="#l153" class="line" id="l153"> 153</a> width: 100%; -<a href="#l154" class="line" id="l154"> 154</a> height: 20px; -<a href="#l155" class="line" id="l155"> 155</a> } -<a href="#l156" class="line" id="l156"> 156</a> -<a href="#l157" class="line" id="l157"> 157</a> button -<a href="#l158" class="line" id="l158"> 158</a> { -<a href="#l159" class="line" id="l159"> 159</a> margin:10px; -<a href="#l160" class="line" id="l160"> 160</a> padding: 4px; -<a href="#l161" class="line" id="l161"> 161</a> font-size: 18px; -<a href="#l162" class="line" id="l162"> 162</a> color: #ff0000; -<a href="#l163" class="line" id="l163"> 163</a> background-color: #222; -<a href="#l164" class="line" id="l164"> 164</a> width: 90%; -<a href="#l165" class="line" id="l165"> 165</a> } -<a href="#l166" class="line" id="l166"> 166</a> -<a href="#l167" class="line" id="l167"> 167</a> .logo -<a href="#l168" class="line" id="l168"> 168</a> { -<a href="#l169" class="line" id="l169"> 169</a> max-width: 345px; -<a href="#l170" class="line" id="l170"> 170</a> width: 90%; -<a href="#l171" class="line" id="l171"> 171</a> height:auto; -<a href="#l172" class="line" id="l172"> 172</a> } -<a href="#l173" class="line" id="l173"> 173</a> -<a href="#l174" class="line" id="l174"> 174</a> #payid -<a href="#l175" class="line" id="l175"> 175</a> { -<a href="#l176" class="line" id="l176"> 176</a> margin: 0px auto; -<a href="#l177" class="line" id="l177"> 177</a> color: #888; -<a href="#l178" class="line" id="l178"> 178</a> text-decoration: normal; -<a href="#l179" class="line" id="l179"> 179</a> background-color: #111; -<a href="#l180" class="line" id="l180"> 180</a> border: 0px; -<a href="#l181" class="line" id="l181"> 181</a> width: 20vw; -<a href="#l182" class="line" id="l182"> 182</a> height: 2vw; -<a href="#l183" class="line" id="l183"> 183</a> font-size: 1.5vw; -<a href="#l184" class="line" id="l184"> 184</a> text-align: center; -<a href="#l185" class="line" id="l185"> 185</a> white-space: pre-wrap; /* CSS3 */ -<a href="#l186" class="line" id="l186"> 186</a> white-space: -moz-pre-wrap; /* Firefox */ -<a href="#l187" class="line" id="l187"> 187</a> white-space: -pre-wrap; /* Opera &lt;7 */ -<a href="#l188" class="line" id="l188"> 188</a> white-space: -o-pre-wrap; /* Opera 7 */ -<a href="#l189" class="line" id="l189"> 189</a> word-wrap: break-word; /* IE */ -<a href="#l190" class="line" id="l190"> 190</a> } -<a href="#l191" class="line" id="l191"> 191</a> -<a href="#l192" class="line" id="l192"> 192</a> #payreq -<a href="#l193" class="line" id="l193"> 193</a> { -<a href="#l194" class="line" id="l194"> 194</a> margin: 0px auto; -<a href="#l195" class="line" id="l195"> 195</a> color: #888; -<a href="#l196" class="line" id="l196"> 196</a> background-color: #111; -<a href="#l197" class="line" id="l197"> 197</a> border: 0px; -<a href="#l198" class="line" id="l198"> 198</a> width: 45vw; -<a href="#l199" class="line" id="l199"> 199</a> height: 4vw; -<a href="#l200" class="line" id="l200"> 200</a> font-size: 1.5vw; -<a href="#l201" class="line" id="l201"> 201</a> text-align: center; -<a href="#l202" class="line" id="l202"> 202</a> white-space: pre-wrap; /* CSS3 */ -<a href="#l203" class="line" id="l203"> 203</a> white-space: -moz-pre-wrap; /* Firefox */ -<a href="#l204" class="line" id="l204"> 204</a> white-space: -pre-wrap; /* Opera &lt;7 */ -<a href="#l205" class="line" id="l205"> 205</a> white-space: -o-pre-wrap; /* Opera 7 */ -<a href="#l206" class="line" id="l206"> 206</a> word-wrap: break-word; /* IE */ -<a href="#l207" class="line" id="l207"> 207</a> } -<a href="#l208" class="line" id="l208"> 208</a> -<a href="#l209" class="line" id="l209"> 209</a> #copybutton -<a href="#l210" class="line" id="l210"> 210</a> { -<a href="#l211" class="line" id="l211"> 211</a> color: #333; -<a href="#l212" class="line" id="l212"> 212</a> text-decoration: bold; -<a href="#l213" class="line" id="l213"> 213</a> background-color: #111; -<a href="#l214" class="line" id="l214"> 214</a> border: 0px; -<a href="#l215" class="line" id="l215"> 215</a> padding: 5px; -<a href="#l216" class="line" id="l216"> 216</a> width: auto; -<a href="#l217" class="line" id="l217"> 217</a> } -<a href="#l218" class="line" id="l218"> 218</a> -<a href="#l219" class="line" id="l219"> 219</a> #backbutton -<a href="#l220" class="line" id="l220"> 220</a> { -<a href="#l221" class="line" id="l221"> 221</a> color: #333; -<a href="#l222" class="line" id="l222"> 222</a> text-decoration: bold; -<a href="#l223" class="line" id="l223"> 223</a> background-color: #111; -<a href="#l224" class="line" id="l224"> 224</a> border: 0px; -<a href="#l225" class="line" id="l225"> 225</a> padding: 5px; -<a href="#l226" class="line" id="l226"> 226</a> width: auto; -<a href="#l227" class="line" id="l227"> 227</a> } -<a href="#l228" class="line" id="l228"> 228</a> -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/base.html.html b/public_html/static/git/file/public_html/templates/base.html.html @@ -1,40 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>base.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> base.html (507B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (content) -<a href="#l2" class="line" id="l2"> 2</a> &lt;!doctype html&gt; -<a href="#l3" class="line" id="l3"> 3</a> &lt;HEAD&gt; -<a href="#l4" class="line" id="l4"> 4</a> &lt;meta charset=&quot;utf-8&quot;&gt; -<a href="#l5" class="line" id="l5"> 5</a> &lt;title&gt;Get Da Fuck Outta Here | buy good shit on the internet&lt;/title&gt; -<a href="#l6" class="line" id="l6"> 6</a> &lt;link rel=&quot;stylesheet&quot; href=&quot;/static/style.css?v=2.0&quot; type=&quot;text/css&quot; rel=&quot;stylesheet&quot;/&gt; -<a href="#l7" class="line" id="l7"> 7</a> &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt; -<a href="#l8" class="line" id="l8"> 8</a> &lt;meta http-equiv=&quot;cache-control&quot; content=&quot;no-cache&quot;&gt; -<a href="#l9" class="line" id="l9"> 9</a> &lt;/HEAD&gt; -<a href="#l10" class="line" id="l10"> 10</a> &lt;BODY&gt; -<a href="#l11" class="line" id="l11"> 11</a> -<a href="#l12" class="line" id="l12"> 12</a> &lt;div id=&quot;container&quot;&gt; -<a href="#l13" class="line" id="l13"> 13</a> $:content -<a href="#l14" class="line" id="l14"> 14</a> &lt;/div&gt; -<a href="#l15" class="line" id="l15"> 15</a> -<a href="#l16" class="line" id="l16"> 16</a> &lt;script type=&quot;text/javascript&quot; src=&quot;/static/scrollcookie.js&quot;&gt;&lt;/script&gt; -<a href="#l17" class="line" id="l17"> 17</a> -<a href="#l18" class="line" id="l18"> 18</a> &lt;/BODY&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/bigpic.html.html b/public_html/static/git/file/public_html/templates/bigpic.html.html @@ -1,27 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>bigpic.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> bigpic.html (144B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (p, product) -<a href="#l2" class="line" id="l2"> 2</a> -<a href="#l3" class="line" id="l3"> 3</a> &lt;a href=&quot;/#$product&quot;&gt;&lt;-- back&lt;/a&gt; -<a href="#l4" class="line" id="l4"> 4</a> &lt;a href=&quot;/#$product&quot;&gt;&lt;img src=&quot;/static/img/$product/web/$p&quot; style=&quot;width:100%;&quot;&gt;&lt;/a&gt; -<a href="#l5" class="line" id="l5"> 5</a> -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/bitcoin.html.html b/public_html/static/git/file/public_html/templates/bitcoin.html.html @@ -1,28 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>bitcoin.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> bitcoin.html (61B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (wallet) -<a href="#l2" class="line" id="l2"> 2</a> -<a href="#l3" class="line" id="l3"> 3</a> $for i in wallet: -<a href="#l4" class="line" id="l4"> 4</a> $i -<a href="#l5" class="line" id="l5"> 5</a> $wallet[i] -<a href="#l6" class="line" id="l6"> 6</a> -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/categories.html.html b/public_html/static/git/file/public_html/templates/categories.html.html @@ -1,35 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>categories.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> categories.html (259B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (listcategories, addcategory) -<a href="#l2" class="line" id="l2"> 2</a> &lt;div id=&quot;container&quot;&gt; -<a href="#l3" class="line" id="l3"> 3</a> &lt;div id=&quot;default&quot;&gt; -<a href="#l4" class="line" id="l4"> 4</a> &lt;br&gt; -<a href="#l5" class="line" id="l5"> 5</a> $for i in listcategories: -<a href="#l6" class="line" id="l6"> 6</a> &lt;a href=&#39;/categories?delete=$i.id&#39;&gt;$i.category&lt;/a&gt; -<a href="#l7" class="line" id="l7"> 7</a> &lt;div id=&quot;addevent&quot;&gt; -<a href="#l8" class="line" id="l8"> 8</a> &lt;form method=&quot;POST&quot;&gt; -<a href="#l9" class="line" id="l9"> 9</a> $:addcategory.render() -<a href="#l10" class="line" id="l10"> 10</a> &lt;/form&gt; -<a href="#l11" class="line" id="l11"> 11</a> &lt;/div&gt; -<a href="#l12" class="line" id="l12"> 12</a> &lt;/div&gt; -<a href="#l13" class="line" id="l13"> 13</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/checkout.html.html b/public_html/static/git/file/public_html/templates/checkout.html.html @@ -1,51 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>checkout.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> checkout.html (769B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (checkoutform, bag, b, productname, float) -<a href="#l2" class="line" id="l2"> 2</a> $ tot = 0 -<a href="#l3" class="line" id="l3"> 3</a> &lt;div id=&quot;container&quot;&gt; -<a href="#l4" class="line" id="l4"> 4</a> &lt;div id=&quot;default&quot;&gt; -<a href="#l5" class="line" id="l5"> 5</a> &lt;h2&gt;Checkout&lt;/h2&gt; -<a href="#l6" class="line" id="l6"> 6</a> $if bag != []: -<a href="#l7" class="line" id="l7"> 7</a> in your order (click to remove): -<a href="#l8" class="line" id="l8"> 8</a> $for i in bag: -<a href="#l9" class="line" id="l9"> 9</a> $code: -<a href="#l10" class="line" id="l10"> 10</a> price = i.quantity * float(i.price/100) -<a href="#l11" class="line" id="l11"> 11</a> &lt;a href=&quot;/dropitem/$i.product&quot;&gt;$i.quantity x $productname(i.product)&lt;/a&gt; $price&amp;euro;&lt;br&gt; -<a href="#l12" class="line" id="l12"> 12</a> &lt;img src=&quot;/static/img/$i.product/thumb/000.jpeg&quot; style=&quot;width:120px&quot;&gt;&lt;br&gt; -<a href="#l13" class="line" id="l13"> 13</a> $code: -<a href="#l14" class="line" id="l14"> 14</a> tot += price -<a href="#l15" class="line" id="l15"> 15</a> $if tot &gt; 0: -<a href="#l16" class="line" id="l16"> 16</a> &lt;br&gt; -<a href="#l17" class="line" id="l17"> 17</a> total: $(tot)&amp;euro; or in real money $int(b.convert_to_btc(tot, &#39;EUR&#39;) * 100000000) Satoshi -<a href="#l18" class="line" id="l18"> 18</a> &lt;br&gt; -<a href="#l19" class="line" id="l19"> 19</a> Order is only reserved once checkout done. -<a href="#l20" class="line" id="l20"> 20</a> &lt;br&gt; -<a href="#l21" class="line" id="l21"> 21</a> &lt;div id=&quot;addevent&quot;&gt; -<a href="#l22" class="line" id="l22"> 22</a> &lt;form method=&quot;POST&quot;&gt; -<a href="#l23" class="line" id="l23"> 23</a> $:checkoutform.render() -<a href="#l24" class="line" id="l24"> 24</a> &lt;/form&gt; -<a href="#l25" class="line" id="l25"> 25</a> &lt;/div&gt; -<a href="#l26" class="line" id="l26"> 26</a> &lt;b&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt; -<a href="#l27" class="line" id="l27"> 27</a> &lt;/div&gt; -<a href="#l28" class="line" id="l28"> 28</a> &lt;/div&gt; -<a href="#l29" class="line" id="l29"> 29</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/index.html.html b/public_html/static/git/file/public_html/templates/index.html.html @@ -1,86 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>index.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> index.html (1800B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (products, b, bag, str, int, float, sessionkey, productname) -<a href="#l2" class="line" id="l2"> 2</a> $ tot = 0 -<a href="#l3" class="line" id="l3"> 3</a> $ x = 0 -<a href="#l4" class="line" id="l4"> 4</a> -<a href="#l5" class="line" id="l5"> 5</a> &lt;div id=&quot;logocontainer&quot;&gt; -<a href="#l6" class="line" id="l6"> 6</a> &lt;div id=&quot;logo2&quot;&gt; -<a href="#l7" class="line" id="l7"> 7</a> &lt;img class=&quot;logo&quot; src=&quot;/static/logo.png&quot;&gt; -<a href="#l8" class="line" id="l8"> 8</a> &lt;/div&gt; -<a href="#l9" class="line" id="l9"> 9</a> &lt;div id=&quot;logo&quot;&gt; -<a href="#l10" class="line" id="l10"> 10</a> &lt;h1&gt;GETDA&lt;br&gt;FUCK&lt;br&gt;OUTTA&lt;br&gt;HERE&lt;/h1&gt; -<a href="#l11" class="line" id="l11"> 11</a> &lt;/div&gt; -<a href="#l12" class="line" id="l12"> 12</a> &lt;p&gt;Good Old Shit Shop&lt;/p&gt; -<a href="#l13" class="line" id="l13"> 13</a> &lt;/div&gt; -<a href="#l14" class="line" id="l14"> 14</a> &lt;br&gt; -<a href="#l15" class="line" id="l15"> 15</a> -<a href="#l16" class="line" id="l16"> 16</a> &lt;div id=&quot;productlist&quot;&gt; -<a href="#l17" class="line" id="l17"> 17</a> $for i in products: -<a href="#l18" class="line" id="l18"> 18</a> &lt;div class=&quot;dashiit&quot; id=&quot;$i.id&quot;&gt; -<a href="#l19" class="line" id="l19"> 19</a> $code: -<a href="#l20" class="line" id="l20"> 20</a> sat = str(int(b.convert_to_btc(i.price/100, &#39;EUR&#39;) * 100000000)) -<a href="#l21" class="line" id="l21"> 21</a> &lt;h2&gt; -<a href="#l22" class="line" id="l22"> 22</a> $i.name -<a href="#l23" class="line" id="l23"> 23</a> &lt;/h2&gt; -<a href="#l24" class="line" id="l24"> 24</a> &lt;p&gt;$i.description&lt;/p&gt; -<a href="#l25" class="line" id="l25"> 25</a> $for p in i.images: -<a href="#l26" class="line" id="l26"> 26</a> &lt;a href=&quot;/bigpic/$i.id?pic=$p&quot;&gt;&lt;img src=&quot;/static/img/$i.id/thumb/$p&quot;&gt;&lt;/a&gt; -<a href="#l27" class="line" id="l27"> 27</a> &lt;br&gt; -<a href="#l28" class="line" id="l28"> 28</a> $if i.available &gt; 0: -<a href="#l29" class="line" id="l29"> 29</a> Price $sat Satoshi ~ $(&quot;%1.2f&quot; % float(i.price/100))&amp;euro; &lt;a href=&quot;?putinbag=$i.id#$i.id&quot;&gt;order&lt;/a&gt;&lt;br&gt; -<a href="#l30" class="line" id="l30"> 30</a> Available $str(i.available) pcs -<a href="#l31" class="line" id="l31"> 31</a> $else: -<a href="#l32" class="line" id="l32"> 32</a> SOLD OUT! check back later. -<a href="#l33" class="line" id="l33"> 33</a> &lt;/div&gt; -<a href="#l34" class="line" id="l34"> 34</a> &lt;br&gt; -<a href="#l35" class="line" id="l35"> 35</a> &lt;small&gt;~-~&lt;/small&gt; -<a href="#l36" class="line" id="l36"> 36</a> &lt;br&gt; -<a href="#l37" class="line" id="l37"> 37</a> &lt;/div&gt; -<a href="#l38" class="line" id="l38"> 38</a> &lt;p&gt;&lt;/p&gt; -<a href="#l39" class="line" id="l39"> 39</a> &lt;h3&gt;rate is $int(b.get_latest_price(&#39;EUR&#39;))&amp;euro;/btc&lt;/h4&gt; -<a href="#l40" class="line" id="l40"> 40</a> &lt;small&gt;powered by &lt;a href=&quot;https://github.com/ElementsProject/lightning&quot;&gt;c-lightning&lt;/a&gt;, &lt;a href=&quot;https://github.com/ElementsProject/lightning-charge&quot;&gt;lightning-charge&lt;/a&gt; and &lt;a href=&quot;https://webpy.org&quot;&gt;web.py &lt;/a&gt;&lt;/small&gt; -<a href="#l41" class="line" id="l41"> 41</a> &lt;br&gt; -<a href="#l42" class="line" id="l42"> 42</a> &lt;br&gt; -<a href="#l43" class="line" id="l43"> 43</a> &lt;br&gt; -<a href="#l44" class="line" id="l44"> 44</a> &lt;br&gt; -<a href="#l45" class="line" id="l45"> 45</a> &lt;br&gt; -<a href="#l46" class="line" id="l46"> 46</a> &lt;br&gt; -<a href="#l47" class="line" id="l47"> 47</a> &lt;br&gt; -<a href="#l48" class="line" id="l48"> 48</a> &lt;div id=&quot;bag&quot;&gt; -<a href="#l49" class="line" id="l49"> 49</a> $if bag != []: -<a href="#l50" class="line" id="l50"> 50</a> &lt;div id=&quot;insidebag&quot;&gt; -<a href="#l51" class="line" id="l51"> 51</a> in your order (click to remove): -<a href="#l52" class="line" id="l52"> 52</a> $for i in bag: -<a href="#l53" class="line" id="l53"> 53</a> $code: -<a href="#l54" class="line" id="l54"> 54</a> price = i.quantity * float(i.price/100) -<a href="#l55" class="line" id="l55"> 55</a> $#&lt;img src=&quot;/static/img/$i.product/thumb/000.jpeg&quot; style=&quot;width:50px&quot;&gt; -<a href="#l56" class="line" id="l56"> 56</a> &lt;a href=&quot;/dropitem/$i.product&quot;&gt;$i.quantity x $productname(i.product)&lt;/a&gt; $price&amp;euro; | -<a href="#l57" class="line" id="l57"> 57</a> $code: -<a href="#l58" class="line" id="l58"> 58</a> tot += price -<a href="#l59" class="line" id="l59"> 59</a> $if tot &gt; 0: -<a href="#l60" class="line" id="l60"> 60</a> &lt;br&gt; -<a href="#l61" class="line" id="l61"> 61</a> total: $(tot)&amp;euro; or in real money $int(b.convert_to_btc(tot, &#39;EUR&#39;) * 100000000) Satoshi -<a href="#l62" class="line" id="l62"> 62</a> &lt;a href=&quot;/checkout&quot;&gt;Checkout&lt;/a&gt; -<a href="#l63" class="line" id="l63"> 63</a> &lt;/div&gt; -<a href="#l64" class="line" id="l64"> 64</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/l33t.html.html b/public_html/static/git/file/public_html/templates/l33t.html.html @@ -1,36 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>l33t.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> l33t.html (247B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (addproduct) -<a href="#l2" class="line" id="l2"> 2</a> &lt;div id=&quot;container&quot;&gt; -<a href="#l3" class="line" id="l3"> 3</a> &lt;div id=&quot;default&quot;&gt; -<a href="#l4" class="line" id="l4"> 4</a> &lt;br&gt; -<a href="#l5" class="line" id="l5"> 5</a> &lt;h2&gt;Add Product&lt;/h2&gt; -<a href="#l6" class="line" id="l6"> 6</a> &lt;div id=&quot;addevent&quot;&gt; -<a href="#l7" class="line" id="l7"> 7</a> &lt;form method=&quot;POST&quot;&gt; -<a href="#l8" class="line" id="l8"> 8</a> $:addproduct.render() -<a href="#l9" class="line" id="l9"> 9</a> &lt;/form&gt; -<a href="#l10" class="line" id="l10"> 10</a> &lt;/div&gt; -<a href="#l11" class="line" id="l11"> 11</a> &lt;b&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt; -<a href="#l12" class="line" id="l12"> 12</a> &lt;/div&gt; -<a href="#l13" class="line" id="l13"> 13</a> &lt;/div&gt; -<a href="#l14" class="line" id="l14"> 14</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/login.html.html b/public_html/static/git/file/public_html/templates/login.html.html @@ -1,35 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>login.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> login.html (220B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (loginform) -<a href="#l2" class="line" id="l2"> 2</a> &lt;div id=&quot;container&quot;&gt; -<a href="#l3" class="line" id="l3"> 3</a> &lt;div id=&quot;default&quot;&gt; -<a href="#l4" class="line" id="l4"> 4</a> &lt;br&gt; -<a href="#l5" class="line" id="l5"> 5</a> &lt;div id=&quot;addevent&quot;&gt; -<a href="#l6" class="line" id="l6"> 6</a> &lt;form method=&quot;POST&quot;&gt; -<a href="#l7" class="line" id="l7"> 7</a> $:loginform.render() -<a href="#l8" class="line" id="l8"> 8</a> &lt;/form&gt; -<a href="#l9" class="line" id="l9"> 9</a> &lt;/div&gt; -<a href="#l10" class="line" id="l10"> 10</a> &lt;b&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt; -<a href="#l11" class="line" id="l11"> 11</a> &lt;/div&gt; -<a href="#l12" class="line" id="l12"> 12</a> &lt;/div&gt; -<a href="#l13" class="line" id="l13"> 13</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/op.html.html b/public_html/static/git/file/public_html/templates/op.html.html @@ -1,36 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>op.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> op.html (526B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (content) -<a href="#l2" class="line" id="l2"> 2</a> &lt;!doctype html&gt; -<a href="#l3" class="line" id="l3"> 3</a> &lt;HEAD&gt; -<a href="#l4" class="line" id="l4"> 4</a> &lt;meta charset=&quot;utf-8&quot;&gt; -<a href="#l5" class="line" id="l5"> 5</a> &lt;title&gt;TARINA | the filmmaking device&lt;/title&gt; -<a href="#l6" class="line" id="l6"> 6</a> &lt;link rel=&quot;stylesheet&quot; href=&quot;/static/style.css&quot; type=&quot;text/css&quot; rel=&quot;stylesheet&quot;/&gt; -<a href="#l7" class="line" id="l7"> 7</a> &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt; -<a href="#l8" class="line" id="l8"> 8</a> &lt;/HEAD&gt; -<a href="#l9" class="line" id="l9"> 9</a> &lt;BODY&gt; -<a href="#l10" class="line" id="l10"> 10</a> &lt;a href=&quot;/categories&quot;&gt;Categories&lt;/a&gt; | &lt;a href=&quot;/products/&quot;&gt;Products&lt;/a&gt; | &lt;a href=&quot;/shipping/&quot;&gt;Shipping&lt;/a&gt; | &lt;a href=&quot;/payments&quot;&gt;Payments&lt;/a&gt; | &lt;a href=&quot;/logout&quot;&gt;Logout&lt;/a&gt; -<a href="#l11" class="line" id="l11"> 11</a> &lt;div id=&quot;container&quot;&gt; -<a href="#l12" class="line" id="l12"> 12</a> $:content -<a href="#l13" class="line" id="l13"> 13</a> &lt;/div&gt; -<a href="#l14" class="line" id="l14"> 14</a> &lt;/BODY&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/operator.html.html b/public_html/static/git/file/public_html/templates/operator.html.html @@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>operator.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> operator.html (54B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> &lt;div id=&quot;container&quot;&gt; -<a href="#l2" class="line" id="l2"> 2</a> &lt;div id=&quot;default&quot;&gt; -<a href="#l3" class="line" id="l3"> 3</a> &lt;/div&gt; -<a href="#l4" class="line" id="l4"> 4</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/pay.html.html b/public_html/static/git/file/public_html/templates/pay.html.html @@ -1,49 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>pay.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> pay.html (690B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (invoice) -<a href="#l2" class="line" id="l2"> 2</a> $ qr = &#39;/static/qr/&#39; + invoice[&#39;id&#39;] + &#39;.png&#39; -<a href="#l3" class="line" id="l3"> 3</a> &lt;script&gt; -<a href="#l4" class="line" id="l4"> 4</a> function copy() { -<a href="#l5" class="line" id="l5"> 5</a> let textarea = document.getElementById(&quot;payreq&quot;); -<a href="#l6" class="line" id="l6"> 6</a> textarea.select(); -<a href="#l7" class="line" id="l7"> 7</a> document.execCommand(&quot;copy&quot;); -<a href="#l8" class="line" id="l8"> 8</a> } -<a href="#l9" class="line" id="l9"> 9</a> &lt;/script&gt; -<a href="#l10" class="line" id="l10"> 10</a> &lt;meta http-equiv=&quot;refresh&quot; content=&quot;5&quot; /&gt; -<a href="#l11" class="line" id="l11"> 11</a> &lt;br&gt; -<a href="#l12" class="line" id="l12"> 12</a> &lt;h2&gt;$invoice[&#39;description&#39;]&lt;br&gt;$invoice[&#39;msatoshi&#39;] msat, $invoice[&#39;quoted_amount&#39;] $invoice[&#39;quoted_currency&#39;]&lt;/h2&gt; -<a href="#l13" class="line" id="l13"> 13</a> &lt;br&gt; -<a href="#l14" class="line" id="l14"> 14</a> &lt;img src=&quot;$qr&quot;&gt; -<a href="#l15" class="line" id="l15"> 15</a> &lt;div id=&#39;hash&#39;&gt; -<a href="#l16" class="line" id="l16"> 16</a> &lt;h4&gt;id:&lt;/h4&gt; -<a href="#l17" class="line" id="l17"> 17</a> &lt;textarea id=&#39;payid&#39;&gt; -<a href="#l18" class="line" id="l18"> 18</a> $invoice[&#39;id&#39;] -<a href="#l19" class="line" id="l19"> 19</a> &lt;/textarea&gt; -<a href="#l20" class="line" id="l20"> 20</a> &lt;h4&gt;pay req:&lt;/h4&gt; -<a href="#l21" class="line" id="l21"> 21</a> &lt;textarea id=&#39;payreq&#39;&gt; -<a href="#l22" class="line" id="l22"> 22</a> $invoice[&#39;payreq&#39;] -<a href="#l23" class="line" id="l23"> 23</a> &lt;/textarea&gt; -<a href="#l24" class="line" id="l24"> 24</a> &lt;br&gt; -<a href="#l25" class="line" id="l25"> 25</a> &lt;button id=&quot;copybutton&quot; onclick=&quot;copy()&quot;&gt;Copy&lt;/button&gt; -<a href="#l26" class="line" id="l26"> 26</a> &lt;button id=&quot;backbutton&quot; autofocus onclick=&quot;parent.location=&#39;/&#39;&quot;&gt;Back&lt;/button&gt; -<a href="#l27" class="line" id="l27"> 27</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/paybtc.html.html b/public_html/static/git/file/public_html/templates/paybtc.html.html @@ -1,58 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>paybtc.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> paybtc.html (945B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (invoice, btcaddress, btcuri, showpayment) -<a href="#l2" class="line" id="l2"> 2</a> $ qr = &#39;/static/qr/&#39; + btcaddress + &#39;.png&#39; -<a href="#l3" class="line" id="l3"> 3</a> &lt;script&gt; -<a href="#l4" class="line" id="l4"> 4</a> function copy() { -<a href="#l5" class="line" id="l5"> 5</a> let textarea = document.getElementById(&quot;payreq&quot;); -<a href="#l6" class="line" id="l6"> 6</a> textarea.select(); -<a href="#l7" class="line" id="l7"> 7</a> document.execCommand(&quot;copy&quot;); -<a href="#l8" class="line" id="l8"> 8</a> } -<a href="#l9" class="line" id="l9"> 9</a> &lt;/script&gt; -<a href="#l10" class="line" id="l10"> 10</a> &lt;meta http-equiv=&quot;refresh&quot; content=&quot;60&quot; /&gt; -<a href="#l11" class="line" id="l11"> 11</a> &lt;br&gt; -<a href="#l12" class="line" id="l12"> 12</a> &lt;h3&gt;$invoice.products&lt;/h3&gt; -<a href="#l13" class="line" id="l13"> 13</a> &lt;h3&gt;$float(invoice.amount/100)&amp;euro;&lt;/h3&gt; -<a href="#l14" class="line" id="l14"> 14</a> &lt;h3&gt;$invoice.totsats Satoshi&lt;/h3&gt; -<a href="#l15" class="line" id="l15"> 15</a> $if showpayment == []: -<a href="#l16" class="line" id="l16"> 16</a> &lt;h3&gt;Status: not paid&lt;/h3&gt; -<a href="#l17" class="line" id="l17"> 17</a> $else: -<a href="#l18" class="line" id="l18"> 18</a> $for i in showpayment: -<a href="#l19" class="line" id="l19"> 19</a> &lt;h4&gt;Status:&lt;/h4&gt; -<a href="#l20" class="line" id="l20"> 20</a> &lt;h4&gt;txid: $i[&#39;txids&#39;]&lt;/h4&gt; -<a href="#l21" class="line" id="l21"> 21</a> &lt;h4&gt;confirmations: $i[&#39;confirmations&#39;]&lt;/h4&gt; -<a href="#l22" class="line" id="l22"> 22</a> &lt;br&gt; -<a href="#l23" class="line" id="l23"> 23</a> &lt;img src=&quot;$qr&quot;&gt; -<a href="#l24" class="line" id="l24"> 24</a> &lt;div id=&#39;hash&#39;&gt; -<a href="#l25" class="line" id="l25"> 25</a> &lt;h4&gt;bitcoin address:&lt;/h4&gt; -<a href="#l26" class="line" id="l26"> 26</a> &lt;textarea id=&#39;payid&#39;&gt; -<a href="#l27" class="line" id="l27"> 27</a> $btcaddress -<a href="#l28" class="line" id="l28"> 28</a> &lt;/textarea&gt; -<a href="#l29" class="line" id="l29"> 29</a> &lt;h4&gt;pay uri:&lt;/h4&gt; -<a href="#l30" class="line" id="l30"> 30</a> &lt;textarea id=&#39;payreq&#39;&gt; -<a href="#l31" class="line" id="l31"> 31</a> $btcuri -<a href="#l32" class="line" id="l32"> 32</a> &lt;/textarea&gt; -<a href="#l33" class="line" id="l33"> 33</a> &lt;br&gt; -<a href="#l34" class="line" id="l34"> 34</a> &lt;button id=&quot;copybutton&quot; onclick=&quot;copy()&quot;&gt;Copy&lt;/button&gt; -<a href="#l35" class="line" id="l35"> 35</a> &lt;button id=&quot;backbutton&quot; autofocus onclick=&quot;parent.location=&#39;/payln/$invoice.invoice_key&#39;&quot;&gt;Pay with Lightning&lt;/button&gt; -<a href="#l36" class="line" id="l36"> 36</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/payln.html.html b/public_html/static/git/file/public_html/templates/payln.html.html @@ -1,59 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>payln.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> payln.html (1127B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (lninvoice, invoice, bag, productname, float) -<a href="#l2" class="line" id="l2"> 2</a> $ qr = &#39;/static/qr/&#39; + lninvoice[&#39;id&#39;] + &#39;.png&#39; -<a href="#l3" class="line" id="l3"> 3</a> &lt;script&gt; -<a href="#l4" class="line" id="l4"> 4</a> function copy() { -<a href="#l5" class="line" id="l5"> 5</a> let textarea = document.getElementById(&quot;payreq&quot;); -<a href="#l6" class="line" id="l6"> 6</a> textarea.select(); -<a href="#l7" class="line" id="l7"> 7</a> document.execCommand(&quot;copy&quot;); -<a href="#l8" class="line" id="l8"> 8</a> } -<a href="#l9" class="line" id="l9"> 9</a> &lt;/script&gt; -<a href="#l10" class="line" id="l10"> 10</a> &lt;meta http-equiv=&quot;refresh&quot; content=&quot;60&quot; /&gt; -<a href="#l11" class="line" id="l11"> 11</a> &lt;h2&gt;Pay with Bitcoin Lightning&lt;/h2&gt; -<a href="#l12" class="line" id="l12"> 12</a> in your order (click to remove):&lt;br&gt; -<a href="#l13" class="line" id="l13"> 13</a> $for i in bag: -<a href="#l14" class="line" id="l14"> 14</a> $code: -<a href="#l15" class="line" id="l15"> 15</a> price = i.quantity * float(i.price/100) -<a href="#l16" class="line" id="l16"> 16</a> &lt;a href=&quot;/dropitem/$i.product&quot;&gt;$i.quantity x $productname(i.product)&lt;/a&gt; $price&amp;euro; &lt;br&gt; -<a href="#l17" class="line" id="l17"> 17</a> &lt;img src=&quot;/static/img/$i.product/thumb/000.jpeg&quot; style=&quot;width:120px&quot;&gt;&lt;br&gt; -<a href="#l18" class="line" id="l18"> 18</a> -<a href="#l19" class="line" id="l19"> 19</a> &lt;h3&gt;$float(invoice.amount/100)&amp;euro;&lt;/h3&gt; -<a href="#l20" class="line" id="l20"> 20</a> &lt;h3&gt;$invoice.totsats Satoshi&lt;/h3&gt; -<a href="#l21" class="line" id="l21"> 21</a> &lt;h3&gt;$lninvoice[&#39;quoted_currency&#39;]&lt;/h3&gt; -<a href="#l22" class="line" id="l22"> 22</a> &lt;h3&gt;$lninvoice[&#39;status&#39;]&lt;/h3&gt; -<a href="#l23" class="line" id="l23"> 23</a> &lt;br&gt; -<a href="#l24" class="line" id="l24"> 24</a> &lt;img src=&quot;$qr&quot;&gt; -<a href="#l25" class="line" id="l25"> 25</a> &lt;div id=&#39;hash&#39;&gt; -<a href="#l26" class="line" id="l26"> 26</a> &lt;h4&gt;id:&lt;/h4&gt; -<a href="#l27" class="line" id="l27"> 27</a> &lt;textarea id=&#39;payid&#39;&gt; -<a href="#l28" class="line" id="l28"> 28</a> $lninvoice[&#39;id&#39;] -<a href="#l29" class="line" id="l29"> 29</a> &lt;/textarea&gt; -<a href="#l30" class="line" id="l30"> 30</a> &lt;h4&gt;pay req:&lt;/h4&gt; -<a href="#l31" class="line" id="l31"> 31</a> &lt;textarea id=&#39;payreq&#39;&gt; -<a href="#l32" class="line" id="l32"> 32</a> $lninvoice[&#39;payreq&#39;] -<a href="#l33" class="line" id="l33"> 33</a> &lt;/textarea&gt; -<a href="#l34" class="line" id="l34"> 34</a> &lt;br&gt; -<a href="#l35" class="line" id="l35"> 35</a> &lt;button id=&quot;copybutton&quot; onclick=&quot;copy()&quot;&gt;Copy&lt;/button&gt; -<a href="#l36" class="line" id="l36"> 36</a> &lt;button id=&quot;backbutton&quot; autofocus onclick=&quot;parent.location=&#39;/paybtc/$invoice.invoice_key&#39;&quot;&gt;Pay with Bitcoin on-chain&lt;/button&gt; -<a href="#l37" class="line" id="l37"> 37</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/payment.html.html b/public_html/static/git/file/public_html/templates/payment.html.html @@ -1,49 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>payment.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> payment.html (691B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (invoice) -<a href="#l2" class="line" id="l2"> 2</a> $ qr = &#39;/static/qr/&#39; + invoice[&#39;id&#39;] + &#39;.png&#39; -<a href="#l3" class="line" id="l3"> 3</a> &lt;script&gt; -<a href="#l4" class="line" id="l4"> 4</a> function copy() { -<a href="#l5" class="line" id="l5"> 5</a> let textarea = document.getElementById(&quot;payreq&quot;); -<a href="#l6" class="line" id="l6"> 6</a> textarea.select(); -<a href="#l7" class="line" id="l7"> 7</a> document.execCommand(&quot;copy&quot;); -<a href="#l8" class="line" id="l8"> 8</a> } -<a href="#l9" class="line" id="l9"> 9</a> &lt;/script&gt; -<a href="#l10" class="line" id="l10"> 10</a> &lt;meta http-equiv=&quot;refresh&quot; content=&quot;60&quot; /&gt; -<a href="#l11" class="line" id="l11"> 11</a> &lt;br&gt; -<a href="#l12" class="line" id="l12"> 12</a> &lt;h2&gt;$invoice[&#39;description&#39;]&lt;br&gt;$invoice[&#39;msatoshi&#39;] msat, $invoice[&#39;quoted_amount&#39;] $invoice[&#39;quoted_currency&#39;]&lt;/h2&gt; -<a href="#l13" class="line" id="l13"> 13</a> &lt;br&gt; -<a href="#l14" class="line" id="l14"> 14</a> &lt;img src=&quot;$qr&quot;&gt; -<a href="#l15" class="line" id="l15"> 15</a> &lt;div id=&#39;hash&#39;&gt; -<a href="#l16" class="line" id="l16"> 16</a> &lt;h4&gt;id:&lt;/h4&gt; -<a href="#l17" class="line" id="l17"> 17</a> &lt;textarea id=&#39;payid&#39;&gt; -<a href="#l18" class="line" id="l18"> 18</a> $invoice[&#39;id&#39;] -<a href="#l19" class="line" id="l19"> 19</a> &lt;/textarea&gt; -<a href="#l20" class="line" id="l20"> 20</a> &lt;h4&gt;pay req:&lt;/h4&gt; -<a href="#l21" class="line" id="l21"> 21</a> &lt;textarea id=&#39;payreq&#39;&gt; -<a href="#l22" class="line" id="l22"> 22</a> $invoice[&#39;payreq&#39;] -<a href="#l23" class="line" id="l23"> 23</a> &lt;/textarea&gt; -<a href="#l24" class="line" id="l24"> 24</a> &lt;br&gt; -<a href="#l25" class="line" id="l25"> 25</a> &lt;button id=&quot;copybutton&quot; onclick=&quot;copy()&quot;&gt;Copy&lt;/button&gt; -<a href="#l26" class="line" id="l26"> 26</a> &lt;button id=&quot;backbutton&quot; autofocus onclick=&quot;parent.location=&#39;/&#39;&quot;&gt;Back&lt;/button&gt; -<a href="#l27" class="line" id="l27"> 27</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/payments.html.html b/public_html/static/git/file/public_html/templates/payments.html.html @@ -1,55 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>payments.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> payments.html (960B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (payments) -<a href="#l2" class="line" id="l2"> 2</a> $var payments = payments -<a href="#l3" class="line" id="l3"> 3</a> $ link = &#39;&#39; -<a href="#l4" class="line" id="l4"> 4</a> &lt;/div&gt; -<a href="#l5" class="line" id="l5"> 5</a> &lt;h2&gt;payments&lt;/h2&gt; -<a href="#l6" class="line" id="l6"> 6</a> &lt;table&gt; -<a href="#l7" class="line" id="l7"> 7</a> $for i in payments: -<a href="#l8" class="line" id="l8"> 8</a> $if i.payment == &#39;Bitcoin&#39;: -<a href="#l9" class="line" id="l9"> 9</a> $ link = &quot;/paybtc/&quot; + i.invoice_key -<a href="#l10" class="line" id="l10"> 10</a> $if i.payment == &#39;Bitcoin Lightning&#39;: -<a href="#l11" class="line" id="l11"> 11</a> $ link = &quot;/payln/&quot; + i.invoice_key -<a href="#l12" class="line" id="l12"> 12</a> &lt;pre&gt; -<a href="#l13" class="line" id="l13"> 13</a> &lt;b&gt;status: $i.status&lt;/b&gt; -<a href="#l14" class="line" id="l14"> 14</a> &lt;a href=$link&gt;$i.invoice_key&lt;/a&gt; -<a href="#l15" class="line" id="l15"> 15</a> $i.payment -<a href="#l16" class="line" id="l16"> 16</a> $i.btc -<a href="#l17" class="line" id="l17"> 17</a> $i.ln -<a href="#l18" class="line" id="l18"> 18</a> $i.products | $float(i.amount/100) &amp;euro; | Satoshis: $i.totsats -<a href="#l19" class="line" id="l19"> 19</a> order $i.timestamp -<a href="#l20" class="line" id="l20"> 20</a> $if i.datepaid: -<a href="#l21" class="line" id="l21"> 21</a> paid $i.datepaid -<a href="#l22" class="line" id="l22"> 22</a> $else: -<a href="#l23" class="line" id="l23"> 23</a> not paid! -<a href="#l24" class="line" id="l24"> 24</a> $i.email -<a href="#l25" class="line" id="l25"> 25</a> $i.firstname $i.lastname -<a href="#l26" class="line" id="l26"> 26</a> $i.address -<a href="#l27" class="line" id="l27"> 27</a> $i.postalcode -<a href="#l28" class="line" id="l28"> 28</a> $i.town -<a href="#l29" class="line" id="l29"> 29</a> $i.country -<a href="#l30" class="line" id="l30"> 30</a> &lt;a href=&#39;/payments?status=thankyou&amp;key=$i.invoice_key&#39;&gt;thank you&lt;/a&gt; | &lt;a href=&#39;/payments?status=shipped&amp;key=$i.invoice_key&#39;&gt;shipped&lt;/a&gt; | &lt;a href=&#39;/payments?status=paynotice&amp;key=$i.invoice_key&#39;&gt;payment notice&lt;/a&gt; | &lt;a href=&#39;/payments?status=remove&amp;key=$i.invoice_key&#39;&gt;remove&lt;/a&gt; -<a href="#l31" class="line" id="l31"> 31</a> &lt;/pre&gt; -<a href="#l32" class="line" id="l32"> 32</a> &lt;/table&gt; -<a href="#l33" class="line" id="l33"> 33</a> -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/pending.html.html b/public_html/static/git/file/public_html/templates/pending.html.html @@ -1,72 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>pending.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> pending.html (1378B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (pending_key, pendingform, pendinginfo, shippinginfo, bag, b, productname, float) -<a href="#l2" class="line" id="l2"> 2</a> $ tot = 0 -<a href="#l3" class="line" id="l3"> 3</a> &lt;div id=&quot;container&quot;&gt; -<a href="#l4" class="line" id="l4"> 4</a> &lt;div id=&quot;default&quot;&gt; -<a href="#l5" class="line" id="l5"> 5</a> &lt;h2&gt;Checkout&lt;/h2&gt; -<a href="#l6" class="line" id="l6"> 6</a> $if bag != []: -<a href="#l7" class="line" id="l7"> 7</a> in your order (click to remove): -<a href="#l8" class="line" id="l8"> 8</a> $for i in bag: -<a href="#l9" class="line" id="l9"> 9</a> $code: -<a href="#l10" class="line" id="l10"> 10</a> price = i.quantity * float(i.price/100) -<a href="#l11" class="line" id="l11"> 11</a> &lt;a href=&quot;/dropitem/$i.product&quot;&gt;$i.quantity x $productname(i.product)&lt;/a&gt; $price&amp;euro; &lt;br&gt; -<a href="#l12" class="line" id="l12"> 12</a> &lt;img src=&quot;/static/img/$i.product/thumb/000.jpeg&quot; style=&quot;width:120px&quot;&gt;&lt;br&gt; -<a href="#l13" class="line" id="l13"> 13</a> $code: -<a href="#l14" class="line" id="l14"> 14</a> tot += price -<a href="#l15" class="line" id="l15"> 15</a> -<a href="#l16" class="line" id="l16"> 16</a> -<a href="#l17" class="line" id="l17"> 17</a> &lt;br&gt; -<a href="#l18" class="line" id="l18"> 18</a> $if pendinginfo.country == &#39;NO-SHIPPING&#39;: -<a href="#l19" class="line" id="l19"> 19</a> No shipping selected, be sure to pick up item yaself okey. -<a href="#l20" class="line" id="l20"> 20</a> $else: -<a href="#l21" class="line" id="l21"> 21</a> Shipping cost to $pendinginfo.country is $float(shippinginfo.price/100)&amp;euro; &lt;br&gt; -<a href="#l22" class="line" id="l22"> 22</a> Shipping estimate is $shippinginfo.days days&lt;br&gt; -<a href="#l23" class="line" id="l23"> 23</a> $code: -<a href="#l24" class="line" id="l24"> 24</a> tot += float(shippinginfo.price/100) -<a href="#l25" class="line" id="l25"> 25</a> &lt;pre&gt; -<a href="#l26" class="line" id="l26"> 26</a> First Name: $pendinginfo.firstname -<a href="#l27" class="line" id="l27"> 27</a> Last Name: $pendinginfo.lastname -<a href="#l28" class="line" id="l28"> 28</a> Country: $pendinginfo.country -<a href="#l29" class="line" id="l29"> 29</a> Address: $pendinginfo.address -<a href="#l30" class="line" id="l30"> 30</a> Town: $pendinginfo.town -<a href="#l31" class="line" id="l31"> 31</a> Postalcode: $pendinginfo.postalcode -<a href="#l32" class="line" id="l32"> 32</a> Email: $pendinginfo.email -<a href="#l33" class="line" id="l33"> 33</a> &lt;/pre&gt; -<a href="#l34" class="line" id="l34"> 34</a> -<a href="#l35" class="line" id="l35"> 35</a> &lt;br&gt; -<a href="#l36" class="line" id="l36"> 36</a> &lt;h3&gt; -<a href="#l37" class="line" id="l37"> 37</a> $if tot &gt; 0: -<a href="#l38" class="line" id="l38"> 38</a> total: $(tot)&amp;euro; or in real money $int(b.convert_to_btc(tot, &#39;EUR&#39;) * 100000000) Satoshi -<a href="#l39" class="line" id="l39"> 39</a> &lt;/h3&gt; -<a href="#l40" class="line" id="l40"> 40</a> &lt;br&gt; -<a href="#l41" class="line" id="l41"> 41</a> &lt;a href=&quot;/checkout&quot;&gt;Go back!&lt;/a&gt; -<a href="#l42" class="line" id="l42"> 42</a> &lt;div id=&quot;addevent&quot;&gt; -<a href="#l43" class="line" id="l43"> 43</a> &lt;form method=&quot;POST&quot;&gt; -<a href="#l44" class="line" id="l44"> 44</a> $:pendingform.render() -<a href="#l45" class="line" id="l45"> 45</a> &lt;/form&gt; -<a href="#l46" class="line" id="l46"> 46</a> &lt;/div&gt; -<a href="#l47" class="line" id="l47"> 47</a> &lt;b&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt; -<a href="#l48" class="line" id="l48"> 48</a> &lt;/div&gt; -<a href="#l49" class="line" id="l49"> 49</a> &lt;/div&gt; -<a href="#l50" class="line" id="l50"> 50</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/products.html.html b/public_html/static/git/file/public_html/templates/products.html.html @@ -1,51 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>products.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> products.html (750B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (addproduct, listproducts, productimages, idvalue) -<a href="#l2" class="line" id="l2"> 2</a> &lt;div id=&quot;container&quot;&gt; -<a href="#l3" class="line" id="l3"> 3</a> &lt;div id=&quot;default&quot;&gt; -<a href="#l4" class="line" id="l4"> 4</a> &lt;br&gt; -<a href="#l5" class="line" id="l5"> 5</a> $for i in listproducts: -<a href="#l6" class="line" id="l6"> 6</a> &lt;a href=&#39;/products/$i.id&#39;&gt;$i.name $i.price&lt;/a&gt; -<a href="#l7" class="line" id="l7"> 7</a> $if idvalue == &#39;&#39;: -<a href="#l8" class="line" id="l8"> 8</a> &lt;h2&gt;Add product&lt;/h2&gt; -<a href="#l9" class="line" id="l9"> 9</a> $else: -<a href="#l10" class="line" id="l10"> 10</a> &lt;h2&gt;Edit product&lt;/h2&gt; -<a href="#l11" class="line" id="l11"> 11</a> &lt;div id=&quot;addevent&quot;&gt; -<a href="#l12" class="line" id="l12"> 12</a> &lt;form method=&quot;POST&quot;&gt; -<a href="#l13" class="line" id="l13"> 13</a> $:addproduct.render() -<a href="#l14" class="line" id="l14"> 14</a> &lt;/form&gt; -<a href="#l15" class="line" id="l15"> 15</a> &lt;a href=&#39;/products/$idvalue?cmd=del&amp;id=$idvalue&#39;&gt;remove product&lt;/a&gt; -<a href="#l16" class="line" id="l16"> 16</a> &lt;br&gt; -<a href="#l17" class="line" id="l17"> 17</a> $for i in productimages: -<a href="#l18" class="line" id="l18"> 18</a> &lt;img src=&quot;/static/img/$idvalue/thumb/$i&quot;&gt; -<a href="#l19" class="line" id="l19"> 19</a> &lt;a href=&#39;/products/$idvalue?cmd=removeimg&amp;img=$i&#39;&gt;remove&lt;/a&gt; -<a href="#l20" class="line" id="l20"> 20</a> &lt;form method=&quot;POST&quot; enctype=&quot;multipart/form-data&quot; action=&quot;&quot;&gt; -<a href="#l21" class="line" id="l21"> 21</a> Image(jpeg): &lt;input type=&quot;file&quot; name=&quot;imgfile&quot;/&gt; &lt;br&gt; -<a href="#l22" class="line" id="l22"> 22</a> &lt;br/&gt; -<a href="#l23" class="line" id="l23"> 23</a> &lt;input name=&quot;upload&quot;, type=&quot;submit&quot; value=&quot;upload&quot; /&gt; -<a href="#l24" class="line" id="l24"> 24</a> &lt;/form&gt; -<a href="#l25" class="line" id="l25"> 25</a> &lt;/div&gt; -<a href="#l26" class="line" id="l26"> 26</a> -<a href="#l27" class="line" id="l27"> 27</a> &lt;/div&gt; -<a href="#l28" class="line" id="l28"> 28</a> &lt;/div&gt; -<a href="#l29" class="line" id="l29"> 29</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/shipping.html.html b/public_html/static/git/file/public_html/templates/shipping.html.html @@ -1,38 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>shipping.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> shipping.html (314B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (addcountry, listcountries) -<a href="#l2" class="line" id="l2"> 2</a> &lt;div id=&quot;container&quot;&gt; -<a href="#l3" class="line" id="l3"> 3</a> &lt;div id=&quot;default&quot;&gt; -<a href="#l4" class="line" id="l4"> 4</a> &lt;br&gt; -<a href="#l5" class="line" id="l5"> 5</a> &lt;h2&gt;Add shipping country&lt;/h2&gt; -<a href="#l6" class="line" id="l6"> 6</a> &lt;div id=&quot;addevent&quot;&gt; -<a href="#l7" class="line" id="l7"> 7</a> &lt;form method=&quot;POST&quot;&gt; -<a href="#l8" class="line" id="l8"> 8</a> $:addcountry.render() -<a href="#l9" class="line" id="l9"> 9</a> &lt;/form&gt; -<a href="#l10" class="line" id="l10"> 10</a> &lt;/div&gt; -<a href="#l11" class="line" id="l11"> 11</a> $for i in listcountries: -<a href="#l12" class="line" id="l12"> 12</a> &lt;a href=&#39;/shipping/$i.id&#39;&gt;$i.country $i.price $i.days&lt;/a&gt; -<a href="#l13" class="line" id="l13"> 13</a> &lt;b&gt;&lt;p&gt;&lt;/p&gt;&lt;/b&gt; -<a href="#l14" class="line" id="l14"> 14</a> &lt;/div&gt; -<a href="#l15" class="line" id="l15"> 15</a> &lt;/div&gt; -<a href="#l16" class="line" id="l16"> 16</a> &lt;/div&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/public_html/templates/thankyou.html.html b/public_html/static/git/file/public_html/templates/thankyou.html.html @@ -1,41 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>thankyou.html - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../../../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../../../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../../../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../../../style.css" /> -</head> -<body> -<table><tr><td><a href="../../../../"><img src="../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../../../log.html">Log</a> | <a href="../../../files.html">Files</a> | <a href="../../../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> thankyou.html (431B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> $def with (id) -<a href="#l2" class="line" id="l2"> 2</a> &lt;script&gt; -<a href="#l3" class="line" id="l3"> 3</a> function copy() { -<a href="#l4" class="line" id="l4"> 4</a> let textarea = document.getElementById(&quot;payid&quot;); -<a href="#l5" class="line" id="l5"> 5</a> textarea.select(); -<a href="#l6" class="line" id="l6"> 6</a> document.execCommand(&quot;copy&quot;); -<a href="#l7" class="line" id="l7"> 7</a> } -<a href="#l8" class="line" id="l8"> 8</a> &lt;/script&gt; -<a href="#l9" class="line" id="l9"> 9</a> -<a href="#l10" class="line" id="l10"> 10</a> &lt;h1&gt;Payment received!&lt;/h1&gt; -<a href="#l11" class="line" id="l11"> 11</a> &lt;h2&gt;Thank you!&lt;/h2&gt; -<a href="#l12" class="line" id="l12"> 12</a> -<a href="#l13" class="line" id="l13"> 13</a> &lt;p&gt;show id to madbaker and claim your bread&lt;/p&gt; -<a href="#l14" class="line" id="l14"> 14</a> &lt;textarea id=&#39;payid&#39;&gt; -<a href="#l15" class="line" id="l15"> 15</a> $id -<a href="#l16" class="line" id="l16"> 16</a> &lt;/textarea&gt; -<a href="#l17" class="line" id="l17"> 17</a> &lt;button id=&quot;copybutton&quot; onclick=&quot;copy()&quot;&gt;Copy&lt;/button&gt; -<a href="#l18" class="line" id="l18"> 18</a> &lt;br&gt; -<a href="#l19" class="line" id="l19"> 19</a> &lt;button id=&quot;backbutton&quot; autofocus onclick=&quot;parent.location=&#39;/&#39;&quot;&gt;Back&lt;/button&gt; -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/file/server.py.html b/public_html/static/git/file/server.py.html @@ -1,698 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>server.py - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="../favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="../atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="../tags.xml" /> -<link rel="stylesheet" type="text/css" href="../style.css" /> -</head> -<body> -<table><tr><td><a href="../../"><img src="../logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="../log.html">Log</a> | <a href="../files.html">Files</a> | <a href="../refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<p> server.py (30625B)</p><hr/><pre id="blob"> -<a href="#l1" class="line" id="l1"> 1</a> #!/usr/bin/python3 -<a href="#l2" class="line" id="l2"> 2</a> # -*- coding: utf-8 -*- -<a href="#l3" class="line" id="l3"> 3</a> -<a href="#l4" class="line" id="l4"> 4</a> import time, datetime, os, sys -<a href="#l5" class="line" id="l5"> 5</a> -<a href="#l6" class="line" id="l6"> 6</a> file_dir = os.path.dirname(__file__) -<a href="#l7" class="line" id="l7"> 7</a> sys.path.append(file_dir) -<a href="#l8" class="line" id="l8"> 8</a> -<a href="#l9" class="line" id="l9"> 9</a> import json -<a href="#l10" class="line" id="l10"> 10</a> import requests -<a href="#l11" class="line" id="l11"> 11</a> import subprocess -<a href="#l12" class="line" id="l12"> 12</a> import web -<a href="#l13" class="line" id="l13"> 13</a> import hashlib -<a href="#l14" class="line" id="l14"> 14</a> import random -<a href="#l15" class="line" id="l15"> 15</a> import time -<a href="#l16" class="line" id="l16"> 16</a> import shutil -<a href="#l17" class="line" id="l17"> 17</a> import settings -<a href="#l18" class="line" id="l18"> 18</a> from PIL import Image -<a href="#l19" class="line" id="l19"> 19</a> from forex_python.bitcoin import BtcConverter -<a href="#l20" class="line" id="l20"> 20</a> from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException -<a href="#l21" class="line" id="l21"> 21</a> -<a href="#l22" class="line" id="l22"> 22</a> urls = ( -<a href="#l23" class="line" id="l23"> 23</a> &#39;/?&#39;, &#39;index&#39;, -<a href="#l24" class="line" id="l24"> 24</a> &#39;/putinbag/(.*)&#39;, &#39;putinbag&#39;, -<a href="#l25" class="line" id="l25"> 25</a> &#39;/dropitem/(.*)?&#39;, &#39;dropitem&#39;, -<a href="#l26" class="line" id="l26"> 26</a> &#39;/payln/(.*)&#39;, &#39;payln&#39;, -<a href="#l27" class="line" id="l27"> 27</a> &#39;/paybtc/(.*)&#39;, &#39;paybtc&#39;, -<a href="#l28" class="line" id="l28"> 28</a> &#39;/payment/(.*)&#39;, &#39;payment&#39;, -<a href="#l29" class="line" id="l29"> 29</a> &#39;/checkout&#39;, &#39;checkout&#39;, -<a href="#l30" class="line" id="l30"> 30</a> &#39;/pending&#39;, &#39;pending&#39;, -<a href="#l31" class="line" id="l31"> 31</a> &#39;/thankyou&#39;, &#39;thankyou&#39;, -<a href="#l32" class="line" id="l32"> 32</a> &#39;/login&#39;, &#39;login&#39;, -<a href="#l33" class="line" id="l33"> 33</a> &#39;/logout&#39;, &#39;logout&#39;, -<a href="#l34" class="line" id="l34"> 34</a> &#39;/products/(.*)?&#39;, &#39;products&#39;, -<a href="#l35" class="line" id="l35"> 35</a> &#39;/bigpic/(.*)?&#39;, &#39;bigpic&#39;, -<a href="#l36" class="line" id="l36"> 36</a> &#39;/categories?&#39;, &#39;categories&#39;, -<a href="#l37" class="line" id="l37"> 37</a> &#39;/op&#39;, &#39;op&#39;, -<a href="#l38" class="line" id="l38"> 38</a> &#39;/bitcoin&#39;, &#39;bitcoin&#39;, -<a href="#l39" class="line" id="l39"> 39</a> &#39;/shipping/(.*)&#39;, &#39;shipping&#39;, -<a href="#l40" class="line" id="l40"> 40</a> &#39;/payments?&#39;, &#39;payments&#39;) -<a href="#l41" class="line" id="l41"> 41</a> -<a href="#l42" class="line" id="l42"> 42</a> allowed = ((&quot;rbckman&quot;, &quot;secret&quot;), -<a href="#l43" class="line" id="l43"> 43</a> (&quot;brkhelle&quot;, &quot;topsecret&quot;)) -<a href="#l44" class="line" id="l44"> 44</a> -<a href="#l45" class="line" id="l45"> 45</a> productsbad = ((&quot;GetDaFuckOuttaHere&quot;, 420.00), -<a href="#l46" class="line" id="l46"> 46</a> (&quot;GetDaFuckOuttaHere Viewfinder&quot;, 80.00), -<a href="#l47" class="line" id="l47"> 47</a> (&quot;Picamera&quot;, 30.00), -<a href="#l48" class="line" id="l48"> 48</a> (&quot;Donation&quot;, 0.005)) -<a href="#l49" class="line" id="l49"> 49</a> -<a href="#l50" class="line" id="l50"> 50</a> bag = &#39;&#39; -<a href="#l51" class="line" id="l51"> 51</a> -<a href="#l52" class="line" id="l52"> 52</a> #Load from settings -<a href="#l53" class="line" id="l53"> 53</a> -<a href="#l54" class="line" id="l54"> 54</a> rpcauth = settings.rpcauth -<a href="#l55" class="line" id="l55"> 55</a> charge_url = settings.charge_url -<a href="#l56" class="line" id="l56"> 56</a> webmaster = settings.webmaster -<a href="#l57" class="line" id="l57"> 57</a> baseurl = settings.baseurl -<a href="#l58" class="line" id="l58"> 58</a> -<a href="#l59" class="line" id="l59"> 59</a> -<a href="#l60" class="line" id="l60"> 60</a> basedir = os.path.dirname(os.path.realpath(__file__)) -<a href="#l61" class="line" id="l61"> 61</a> templatedir = basedir + &#39;/public_html/templates/&#39; -<a href="#l62" class="line" id="l62"> 62</a> staticdir = basedir + &#39;/public_html/static/&#39; -<a href="#l63" class="line" id="l63"> 63</a> web.config.debug = False -<a href="#l64" class="line" id="l64"> 64</a> app = web.application(urls, globals()) -<a href="#l65" class="line" id="l65"> 65</a> store = web.session.DiskStore(basedir + &#39;/sessions&#39;) -<a href="#l66" class="line" id="l66"> 66</a> render = web.template.render(templatedir, base=&quot;base&quot;) -<a href="#l67" class="line" id="l67"> 67</a> renderop = web.template.render(templatedir, base=&quot;op&quot;) -<a href="#l68" class="line" id="l68"> 68</a> db = web.database(dbn=&#39;sqlite&#39;, db=basedir + &quot;/db/cyberpunkcafe.db&quot;) -<a href="#l69" class="line" id="l69"> 69</a> session = web.session.Session(app,store,initializer={&#39;login&#39;:0, &#39;privilege&#39;:0, &#39;bag&#39;:[], &#39;sessionkey&#39;:0}) -<a href="#l70" class="line" id="l70"> 70</a> -<a href="#l71" class="line" id="l71"> 71</a> #----------- Database setup ------------- -<a href="#l72" class="line" id="l72"> 72</a> -<a href="#l73" class="line" id="l73"> 73</a> #Remeber to store Euros in cents -<a href="#l74" class="line" id="l74"> 74</a> -<a href="#l75" class="line" id="l75"> 75</a> #CREATE TABLE products (id integer PRIMARY KEY, name text NOT NULL, description text, price integer NOT NULL, available integer, sold integer, priority integer, dateadded integer, datelastsold integer, daterunout integer, dateavailable integer); -<a href="#l76" class="line" id="l76"> 76</a> -<a href="#l77" class="line" id="l77"> 77</a> #CREATE TABLE shipping (id integer PRIMARY KEY, country text NOT NULL, cost integer NOT NULL, days integer NOT NULL); -<a href="#l78" class="line" id="l78"> 78</a> -<a href="#l79" class="line" id="l79"> 79</a> #should rename to customer -<a href="#l80" class="line" id="l80"> 80</a> #CREATE TABLE pending (id integer PRIMARY KEY, invoice_key text NOT NULL, country text NOT NULL, firstname text NOT NULL, lastname text NOT NULL, address text NOT NULL, town text NOT NULL, postalcode integer NOT NULL, email text NOT NULL, dateadded integer) -<a href="#l81" class="line" id="l81"> 81</a> -<a href="#l82" class="line" id="l82"> 82</a> #CREATE TABLE invoices (id INT AUTO_INCREMENT, invoice_key TEXT, btc TEXT, ln TEXT, products TEXT, payment TEXT, amount INT, totsats INT, timestamp TIMESTAMP, status TEXT, datepaid TIMESTAMP, dateshipped TIMESTAMP); -<a href="#l83" class="line" id="l83"> 83</a> -<a href="#l84" class="line" id="l84"> 84</a> -<a href="#l85" class="line" id="l85"> 85</a> def logged(): -<a href="#l86" class="line" id="l86"> 86</a> if session.login == 1: -<a href="#l87" class="line" id="l87"> 87</a> return True -<a href="#l88" class="line" id="l88"> 88</a> else: -<a href="#l89" class="line" id="l89"> 89</a> return False -<a href="#l90" class="line" id="l90"> 90</a> -<a href="#l91" class="line" id="l91"> 91</a> def sendmail(email, subject, msg): -<a href="#l92" class="line" id="l92"> 92</a> #Send mail -<a href="#l93" class="line" id="l93"> 93</a> echomsg = subprocess.Popen((&#39;echo&#39;, msg), stdout=subprocess.PIPE) -<a href="#l94" class="line" id="l94"> 94</a> sendmsg = subprocess.check_output((&#39;mail&#39;, &#39;-r&#39;, &#39;rob@tarina.org&#39;, &#39;-s&#39;, subject, email), stdin=echomsg.stdout) -<a href="#l95" class="line" id="l95"> 95</a> echomsg.wait() -<a href="#l96" class="line" id="l96"> 96</a> #subprocess.call([&#39;echo&#39;, msg, &#39;|&#39;, &#39;mail&#39;, &#39;-r&#39;, &#39;rob@tarina.org&#39;,&#39;-s&#39;, subject, email]) -<a href="#l97" class="line" id="l97"> 97</a> -<a href="#l98" class="line" id="l98"> 98</a> def createinvoice(amount, description, invoice_key): -<a href="#l99" class="line" id="l99"> 99</a> #Cents to EUR -<a href="#l100" class="line" id="l100"> 100</a> amount = str(amount*1000) -<a href="#l101" class="line" id="l101"> 101</a> invoice_details = {&quot;msatoshi&quot;:amount, &quot;description&quot;: &quot;{}&quot;.format(description)} -<a href="#l102" class="line" id="l102"> 102</a> print(invoice_details) -<a href="#l103" class="line" id="l103"> 103</a> resp = requests.post(charge_url+&#39;/invoice/&#39;, json=invoice_details) -<a href="#l104" class="line" id="l104"> 104</a> #print(resp.json()) -<a href="#l105" class="line" id="l105"> 105</a> return resp.json() -<a href="#l106" class="line" id="l106"> 106</a> -<a href="#l107" class="line" id="l107"> 107</a> def getinvoice(id): -<a href="#l108" class="line" id="l108"> 108</a> resp = requests.get(charge_url+&#39;/invoice/&#39;+id) -<a href="#l109" class="line" id="l109"> 109</a> print(resp.json()) -<a href="#l110" class="line" id="l110"> 110</a> return resp.json() -<a href="#l111" class="line" id="l111"> 111</a> -<a href="#l112" class="line" id="l112"> 112</a> def callsubprocess(cmd): -<a href="#l113" class="line" id="l113"> 113</a> subprocess.call(cmd.split()) -<a href="#l114" class="line" id="l114"> 114</a> -<a href="#l115" class="line" id="l115"> 115</a> def dropitems(d): -<a href="#l116" class="line" id="l116"> 116</a> i = getproduct(d) -<a href="#l117" class="line" id="l117"> 117</a> db.update(&#39;products&#39;, where=&quot;id=&#39;&quot;+str(i.id)+&quot;&#39;&quot;, available=i.available+1) -<a href="#l118" class="line" id="l118"> 118</a> product = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39; AND product=&#39;&quot;+str(i.id)+&quot;&#39;;&quot;)[0] -<a href="#l119" class="line" id="l119"> 119</a> if product.quantity &gt; 1: -<a href="#l120" class="line" id="l120"> 120</a> db.update(&#39;customerbag&#39;, where=&quot;sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39; and product=&#39;&quot;+str(i.id)+&quot;&#39;&quot;, quantity=product.quantity-1) -<a href="#l121" class="line" id="l121"> 121</a> else: -<a href="#l122" class="line" id="l122"> 122</a> db.query(&quot;DELETE FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39; AND product=&#39;&quot;+str(i.id)+&quot;&#39;;&quot;) -<a href="#l123" class="line" id="l123"> 123</a> -<a href="#l124" class="line" id="l124"> 124</a> def addtobag(p): -<a href="#l125" class="line" id="l125"> 125</a> i = getproduct(p) -<a href="#l126" class="line" id="l126"> 126</a> if i.available &gt; 0: -<a href="#l127" class="line" id="l127"> 127</a> #session.bag += (i.name, i.price, i.id), -<a href="#l128" class="line" id="l128"> 128</a> db.update(&#39;products&#39;, where=&quot;id=&#39;&quot;+str(i.id)+&quot;&#39;&quot;, available=i.available-1) -<a href="#l129" class="line" id="l129"> 129</a> product = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39; AND product=&#39;&quot;+str(i.id)+&quot;&#39;;&quot;) -<a href="#l130" class="line" id="l130"> 130</a> if product: -<a href="#l131" class="line" id="l131"> 131</a> product = product[0] -<a href="#l132" class="line" id="l132"> 132</a> print(product) -<a href="#l133" class="line" id="l133"> 133</a> db.update(&#39;customerbag&#39;, where=&quot;sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39; and product=&#39;&quot;+str(i.id)+&quot;&#39;&quot;, quantity=product.quantity+1) -<a href="#l134" class="line" id="l134"> 134</a> print(&#39;gwtdafaakouttahere&#39;) -<a href="#l135" class="line" id="l135"> 135</a> else: -<a href="#l136" class="line" id="l136"> 136</a> db.insert(&#39;customerbag&#39;, sessionkey=session.sessionkey, product=i.id, price=i.price, quantity=1, timeadded=datetime.datetime.now()) -<a href="#l137" class="line" id="l137"> 137</a> -<a href="#l138" class="line" id="l138"> 138</a> def productname(productid): -<a href="#l139" class="line" id="l139"> 139</a> try: -<a href="#l140" class="line" id="l140"> 140</a> name = db.query(&quot;SELECT name FROM products WHERE id=&#39;&quot;+str(productid)+&quot;&#39;;&quot;)[0] -<a href="#l141" class="line" id="l141"> 141</a> except: -<a href="#l142" class="line" id="l142"> 142</a> return &#39;&#39; -<a href="#l143" class="line" id="l143"> 143</a> return name.name -<a href="#l144" class="line" id="l144"> 144</a> -<a href="#l145" class="line" id="l145"> 145</a> def getproduct(productid): -<a href="#l146" class="line" id="l146"> 146</a> try: -<a href="#l147" class="line" id="l147"> 147</a> product = db.query(&quot;SELECT * FROM products WHERE id=&#39;&quot;+str(productid)+&quot;&#39;;&quot;)[0] -<a href="#l148" class="line" id="l148"> 148</a> except: -<a href="#l149" class="line" id="l149"> 149</a> return &#39;&#39; -<a href="#l150" class="line" id="l150"> 150</a> return product -<a href="#l151" class="line" id="l151"> 151</a> -<a href="#l152" class="line" id="l152"> 152</a> def getavailable(productid): -<a href="#l153" class="line" id="l153"> 153</a> try: -<a href="#l154" class="line" id="l154"> 154</a> name = db.query(&quot;SELECT available FROM products WHERE id=&#39;&quot;+str(productid)+&quot;&#39;;&quot;)[0] -<a href="#l155" class="line" id="l155"> 155</a> except: -<a href="#l156" class="line" id="l156"> 156</a> return &#39;&#39; -<a href="#l157" class="line" id="l157"> 157</a> return name.available -<a href="#l158" class="line" id="l158"> 158</a> -<a href="#l159" class="line" id="l159"> 159</a> def checkforoldbags(): -<a href="#l160" class="line" id="l160"> 160</a> print(&#39;checking for old bags&#39;) -<a href="#l161" class="line" id="l161"> 161</a> bags = db.select(&#39;customerbag&#39;) -<a href="#l162" class="line" id="l162"> 162</a> for bag in bags: -<a href="#l163" class="line" id="l163"> 163</a> if datetime.datetime.now() - bag.timeadded &gt; datetime.timedelta(hours=1): -<a href="#l164" class="line" id="l164"> 164</a> print(datetime.datetime.now() - bag.timeadded) -<a href="#l165" class="line" id="l165"> 165</a> print(datetime.timedelta(hours=1)) -<a href="#l166" class="line" id="l166"> 166</a> print(&quot;Fuck&quot;) -<a href="#l167" class="line" id="l167"> 167</a> product = getproduct(bag.product) -<a href="#l168" class="line" id="l168"> 168</a> print(&#39;found a bag at door! goddamit, got to put &#39; + str(bag.quantity) + &#39; x &#39; + product.name + &#39; back on the shelf&#39;) -<a href="#l169" class="line" id="l169"> 169</a> if product.available &gt; 1: -<a href="#l170" class="line" id="l170"> 170</a> q = product.available + bag.quantity -<a href="#l171" class="line" id="l171"> 171</a> else: -<a href="#l172" class="line" id="l172"> 172</a> q = bag.quantity -<a href="#l173" class="line" id="l173"> 173</a> db.update(&#39;products&#39;, where=&quot;id=&#39;&quot;+str(bag.product)+&quot;&#39;&quot;, available=str(q)) -<a href="#l174" class="line" id="l174"> 174</a> db.query(&quot;DELETE FROM customerbag WHERE sessionkey=&#39;&quot; + bag.sessionkey + &quot;&#39;&quot;) -<a href="#l175" class="line" id="l175"> 175</a> -<a href="#l176" class="line" id="l176"> 176</a> def checkavailable(): -<a href="#l177" class="line" id="l177"> 177</a> print(&#39;check items from availability&#39;) -<a href="#l178" class="line" id="l178"> 178</a> bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey + &quot;&#39;&quot;) -<a href="#l179" class="line" id="l179"> 179</a> for i in bag: -<a href="#l180" class="line" id="l180"> 180</a> q = getavailable(i.product) -<a href="#l181" class="line" id="l181"> 181</a> soldout = q - i.quantity -<a href="#l182" class="line" id="l182"> 182</a> if soldout &lt; 0: -<a href="#l183" class="line" id="l183"> 183</a> web.seeother(&#39;/?error=soldout&#39;) -<a href="#l184" class="line" id="l184"> 184</a> else: -<a href="#l185" class="line" id="l185"> 185</a> return -<a href="#l186" class="line" id="l186"> 186</a> -<a href="#l187" class="line" id="l187"> 187</a> def sold(): -<a href="#l188" class="line" id="l188"> 188</a> print(&#39;remove items from availability&#39;) -<a href="#l189" class="line" id="l189"> 189</a> bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey + &quot;&#39;&quot;) -<a href="#l190" class="line" id="l190"> 190</a> for i in bag: -<a href="#l191" class="line" id="l191"> 191</a> q = getavailable(i.product) -<a href="#l192" class="line" id="l192"> 192</a> soldout = q - i.quantity -<a href="#l193" class="line" id="l193"> 193</a> if soldout &lt; 0: -<a href="#l194" class="line" id="l194"> 194</a> web.seeother(&#39;/?error=soldout&#39;) -<a href="#l195" class="line" id="l195"> 195</a> else: -<a href="#l196" class="line" id="l196"> 196</a> db.update(&#39;products&#39;, where=&quot;id=&#39;&quot;+str(i.product)+&quot;&#39;&quot;, available=str(q - i.quantity)) -<a href="#l197" class="line" id="l197"> 197</a> -<a href="#l198" class="line" id="l198"> 198</a> -<a href="#l199" class="line" id="l199"> 199</a> def organizepics(product): -<a href="#l200" class="line" id="l200"> 200</a> imgdir = basedir+&#39;/public_html/static/img/&#39; + str(product) + &#39;/&#39; -<a href="#l201" class="line" id="l201"> 201</a> imgdirlist = [imgdir, imgdir + &#39;web/&#39;, imgdir + &#39;thumb/&#39;] -<a href="#l202" class="line" id="l202"> 202</a> for d in imgdirlist: -<a href="#l203" class="line" id="l203"> 203</a> pics = next(os.walk(d))[2] -<a href="#l204" class="line" id="l204"> 204</a> organized_nr = 0 -<a href="#l205" class="line" id="l205"> 205</a> for s in sorted(pics): -<a href="#l206" class="line" id="l206"> 206</a> if &#39;.jpeg&#39; in s: -<a href="#l207" class="line" id="l207"> 207</a> #print(s) -<a href="#l208" class="line" id="l208"> 208</a> unorganized_nr = int(s[0:3]) -<a href="#l209" class="line" id="l209"> 209</a> if organized_nr == unorganized_nr: -<a href="#l210" class="line" id="l210"> 210</a> print(&#39;correcto pic numbering&#39;) -<a href="#l211" class="line" id="l211"> 211</a> pass -<a href="#l212" class="line" id="l212"> 212</a> if organized_nr != unorganized_nr: -<a href="#l213" class="line" id="l213"> 213</a> print(&#39;false, correcting pic from &#39; + str(unorganized_nr) + &#39; to &#39; + str(organized_nr)) -<a href="#l214" class="line" id="l214"> 214</a> mv = &#39;mv &#39; + d + str(unorganized_nr).zfill(3) + &#39;.jpeg&#39; -<a href="#l215" class="line" id="l215"> 215</a> mv2 = &#39; &#39; + d + str(organized_nr).zfill(3) + &#39;.jpeg&#39; -<a href="#l216" class="line" id="l216"> 216</a> os.system(mv + mv2) -<a href="#l217" class="line" id="l217"> 217</a> organized_nr += 1 -<a href="#l218" class="line" id="l218"> 218</a> -<a href="#l219" class="line" id="l219"> 219</a> def getpendinginfo(): -<a href="#l220" class="line" id="l220"> 220</a> try: -<a href="#l221" class="line" id="l221"> 221</a> pendinginfo = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + session.sessionkey + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;)[0] -<a href="#l222" class="line" id="l222"> 222</a> except: -<a href="#l223" class="line" id="l223"> 223</a> pendinginfo = &#39;&#39; -<a href="#l224" class="line" id="l224"> 224</a> return pendinginfo -<a href="#l225" class="line" id="l225"> 225</a> -<a href="#l226" class="line" id="l226"> 226</a> class index(): -<a href="#l227" class="line" id="l227"> 227</a> def GET(self): -<a href="#l228" class="line" id="l228"> 228</a> checkforoldbags() -<a href="#l229" class="line" id="l229"> 229</a> i = web.input(dropitem=None, putinbag=None) -<a href="#l230" class="line" id="l230"> 230</a> if session.sessionkey == 0: -<a href="#l231" class="line" id="l231"> 231</a> session.sessionkey = hashlib.sha256(str(random.getrandbits(256)).encode(&#39;utf-8&#39;)).hexdigest() -<a href="#l232" class="line" id="l232"> 232</a> if i.dropitem != None: -<a href="#l233" class="line" id="l233"> 233</a> session.bag = dropitems(int(i.dropitem)) -<a href="#l234" class="line" id="l234"> 234</a> print(session.bag) -<a href="#l235" class="line" id="l235"> 235</a> if i.putinbag != None: -<a href="#l236" class="line" id="l236"> 236</a> addtobag(i.putinbag) -<a href="#l237" class="line" id="l237"> 237</a> return web.seeother(&#39;/#&#39; + i.putinbag) -<a href="#l238" class="line" id="l238"> 238</a> print(&#39;Cyberpunk cafe&#39;) -<a href="#l239" class="line" id="l239"> 239</a> #print(session.bag) -<a href="#l240" class="line" id="l240"> 240</a> b = BtcConverter() -<a href="#l241" class="line" id="l241"> 241</a> listproducts = db.query(&quot;SELECT * FROM products ORDER BY priority DESC&quot;) -<a href="#l242" class="line" id="l242"> 242</a> imgfiles = [] -<a href="#l243" class="line" id="l243"> 243</a> products = [] -<a href="#l244" class="line" id="l244"> 244</a> # Search product images -<a href="#l245" class="line" id="l245"> 245</a> for i in listproducts: -<a href="#l246" class="line" id="l246"> 246</a> productimages = [&#39;&#39;] -<a href="#l247" class="line" id="l247"> 247</a> imgdir = staticdir + &#39;img/&#39; + str(i.id) + &#39;/web/&#39; -<a href="#l248" class="line" id="l248"> 248</a> try: -<a href="#l249" class="line" id="l249"> 249</a> productimages = sorted(os.listdir(imgdir)) -<a href="#l250" class="line" id="l250"> 250</a> if len(productimages) == 0: -<a href="#l251" class="line" id="l251"> 251</a> productimages = [&#39;&#39;] -<a href="#l252" class="line" id="l252"> 252</a> print(productimages) -<a href="#l253" class="line" id="l253"> 253</a> except FileNotFoundError: -<a href="#l254" class="line" id="l254"> 254</a> print(&#39;No product images&#39;) -<a href="#l255" class="line" id="l255"> 255</a> pass -<a href="#l256" class="line" id="l256"> 256</a> i.update({&#39;images&#39;:productimages}) -<a href="#l257" class="line" id="l257"> 257</a> products.append(i) -<a href="#l258" class="line" id="l258"> 258</a> try: -<a href="#l259" class="line" id="l259"> 259</a> bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -<a href="#l260" class="line" id="l260"> 260</a> except: -<a href="#l261" class="line" id="l261"> 261</a> bag = [] -<a href="#l262" class="line" id="l262"> 262</a> return render.index(products, b, bag, str, int, float, session.sessionkey, productname) -<a href="#l263" class="line" id="l263"> 263</a> -<a href="#l264" class="line" id="l264"> 264</a> class putinbag: -<a href="#l265" class="line" id="l265"> 265</a> def GET(self, p): -<a href="#l266" class="line" id="l266"> 266</a> addtobag(p) -<a href="#l267" class="line" id="l267"> 267</a> raise web.seeother(&#39;/&#39;) -<a href="#l268" class="line" id="l268"> 268</a> -<a href="#l269" class="line" id="l269"> 269</a> class dropitem(): -<a href="#l270" class="line" id="l270"> 270</a> def GET(self, d): -<a href="#l271" class="line" id="l271"> 271</a> p = web.input() -<a href="#l272" class="line" id="l272"> 272</a> i = 0 -<a href="#l273" class="line" id="l273"> 273</a> dropitems(int(d)) -<a href="#l274" class="line" id="l274"> 274</a> return web.seeother(&#39;/#&#39;+d) -<a href="#l275" class="line" id="l275"> 275</a> -<a href="#l276" class="line" id="l276"> 276</a> class bigpic(): -<a href="#l277" class="line" id="l277"> 277</a> def GET(self, i): -<a href="#l278" class="line" id="l278"> 278</a> print(&#39;faaaakyeee &#39; + i) -<a href="#l279" class="line" id="l279"> 279</a> p = web.input(pic=None) -<a href="#l280" class="line" id="l280"> 280</a> if p.pic != None: -<a href="#l281" class="line" id="l281"> 281</a> return render.bigpic(p.pic, i) -<a href="#l282" class="line" id="l282"> 282</a> -<a href="#l283" class="line" id="l283"> 283</a> class checkout: -<a href="#l284" class="line" id="l284"> 284</a> t = [] -<a href="#l285" class="line" id="l285"> 285</a> shippingcountries = db.select(&#39;shipping&#39;, what=&#39;country&#39;, order=&#39;country ASC&#39;) -<a href="#l286" class="line" id="l286"> 286</a> shippingcountries = list(shippingcountries) -<a href="#l287" class="line" id="l287"> 287</a> t.append(&#39;NO-SHIPPING&#39;) -<a href="#l288" class="line" id="l288"> 288</a> for i in shippingcountries: -<a href="#l289" class="line" id="l289"> 289</a> if i.country != &#39;NO-SHIPPING&#39;: -<a href="#l290" class="line" id="l290"> 290</a> t.append(i.country) -<a href="#l291" class="line" id="l291"> 291</a> form = web.form.Form( -<a href="#l292" class="line" id="l292"> 292</a> web.form.Dropdown(&#39;country&#39;, t, web.form.notnull, description=&quot;Country&quot;), -<a href="#l293" class="line" id="l293"> 293</a> web.form.Textbox(&#39;firstname&#39;, web.form.notnull, description=&quot;First Name:&quot;), -<a href="#l294" class="line" id="l294"> 294</a> web.form.Textbox(&#39;lastname&#39;, web.form.notnull, description=&quot;Last Name:&quot;), -<a href="#l295" class="line" id="l295"> 295</a> web.form.Textbox(&#39;address&#39;, web.form.notnull, description=&quot;Shipping Address:&quot;), -<a href="#l296" class="line" id="l296"> 296</a> web.form.Textbox(&#39;town&#39;, web.form.notnull, description=&quot;Town / City:&quot;), -<a href="#l297" class="line" id="l297"> 297</a> web.form.Textbox(&#39;postalcode&#39;, web.form.regexp(&#39;\d+&#39;, &#39;number thanx!&#39;), web.form.notnull, description=&quot;Postalcode / zip&quot;), -<a href="#l298" class="line" id="l298"> 298</a> web.form.Textbox(&#39;email&#39;, web.form.notnull, description=&quot;Email:&quot;), -<a href="#l299" class="line" id="l299"> 299</a> web.form.Button(&#39;Calculate shipping cost&#39;)) -<a href="#l300" class="line" id="l300"> 300</a> -<a href="#l301" class="line" id="l301"> 301</a> def GET(self): -<a href="#l302" class="line" id="l302"> 302</a> #checkavailable() -<a href="#l303" class="line" id="l303"> 303</a> checkoutform = self.form() -<a href="#l304" class="line" id="l304"> 304</a> pendinginfo = getpendinginfo() -<a href="#l305" class="line" id="l305"> 305</a> if pendinginfo: -<a href="#l306" class="line" id="l306"> 306</a> checkoutform.fill(country=pendinginfo.country, firstname=pendinginfo.firstname, lastname=pendinginfo.lastname, address=pendinginfo.address, town=pendinginfo.town, postalcode=pendinginfo.postalcode, email=pendinginfo.email) -<a href="#l307" class="line" id="l307"> 307</a> b = BtcConverter() -<a href="#l308" class="line" id="l308"> 308</a> bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -<a href="#l309" class="line" id="l309"> 309</a> return render.checkout(checkoutform, bag, b, productname, float) -<a href="#l310" class="line" id="l310"> 310</a> def POST(self): -<a href="#l311" class="line" id="l311"> 311</a> checkoutform = self.form() -<a href="#l312" class="line" id="l312"> 312</a> pendinginfo = getpendinginfo() -<a href="#l313" class="line" id="l313"> 313</a> i = web.input() -<a href="#l314" class="line" id="l314"> 314</a> if i.country != &#39;NO-SHIPPING&#39;: -<a href="#l315" class="line" id="l315"> 315</a> if not checkoutform.validates(): -<a href="#l316" class="line" id="l316"> 316</a> b = BtcConverter() -<a href="#l317" class="line" id="l317"> 317</a> return render.checkout(checkoutform, session.bag, b) -<a href="#l318" class="line" id="l318"> 318</a> if pendinginfo: -<a href="#l319" class="line" id="l319"> 319</a> db.update(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + session.sessionkey +&quot;&#39;&quot;, country=i.country, firstname=i.firstname, lastname=i.lastname, address=i.address, town=i.town, postalcode=i.postalcode, email=i.email, dateadded=datetime.datetime.now()) -<a href="#l320" class="line" id="l320"> 320</a> else: -<a href="#l321" class="line" id="l321"> 321</a> db.insert(&#39;pending&#39;, invoice_key=session.sessionkey, country=i.country, firstname=i.firstname, lastname=i.lastname, address=i.address, town=i.town, postalcode=i.postalcode, email=i.email, dateadded=datetime.datetime.now()) -<a href="#l322" class="line" id="l322"> 322</a> raise web.seeother(&#39;/pending&#39;) -<a href="#l323" class="line" id="l323"> 323</a> -<a href="#l324" class="line" id="l324"> 324</a> class pending: -<a href="#l325" class="line" id="l325"> 325</a> form = web.form.Form( -<a href="#l326" class="line" id="l326"> 326</a> web.form.Dropdown(&#39;payment&#39;, [&#39;Bitcoin Lightning&#39;, &#39;Bitcoin&#39;], web.form.notnull, description=&quot;Select payment method&quot;), -<a href="#l327" class="line" id="l327"> 327</a> web.form.Button(&#39;Pay&#39;)) -<a href="#l328" class="line" id="l328"> 328</a> def GET(self): -<a href="#l329" class="line" id="l329"> 329</a> #checkavailable() -<a href="#l330" class="line" id="l330"> 330</a> pendingform = self.form() -<a href="#l331" class="line" id="l331"> 331</a> pendinginfo = getpendinginfo() -<a href="#l332" class="line" id="l332"> 332</a> if pendinginfo: -<a href="#l333" class="line" id="l333"> 333</a> shippinginfo = db.select(&#39;shipping&#39;, where=&quot;country=&#39;&quot; + pendinginfo.country + &quot;&#39;&quot;, what=&#39;price, days&#39;)[0] -<a href="#l334" class="line" id="l334"> 334</a> b = BtcConverter() -<a href="#l335" class="line" id="l335"> 335</a> bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -<a href="#l336" class="line" id="l336"> 336</a> return render.pending(session.sessionkey, pendingform, pendinginfo, shippinginfo, bag, b, productname, float) -<a href="#l337" class="line" id="l337"> 337</a> def POST(self): -<a href="#l338" class="line" id="l338"> 338</a> pendingform = self.form() -<a href="#l339" class="line" id="l339"> 339</a> pendinginfo = getpendinginfo() -<a href="#l340" class="line" id="l340"> 340</a> if pendinginfo: -<a href="#l341" class="line" id="l341"> 341</a> shippinginfo = db.select(&#39;shipping&#39;, where=&quot;country=&#39;&quot; + pendinginfo.country + &quot;&#39;&quot;, what=&#39;price, days&#39;)[0] -<a href="#l342" class="line" id="l342"> 342</a> i = web.input() -<a href="#l343" class="line" id="l343"> 343</a> #if session.bag != []: -<a href="#l344" class="line" id="l344"> 344</a> totalamount = 0 -<a href="#l345" class="line" id="l345"> 345</a> description = &#39;&#39; -<a href="#l346" class="line" id="l346"> 346</a> bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -<a href="#l347" class="line" id="l347"> 347</a> comma = &#39;&#39; -<a href="#l348" class="line" id="l348"> 348</a> for s in bag: -<a href="#l349" class="line" id="l349"> 349</a> totalamount += s.price -<a href="#l350" class="line" id="l350"> 350</a> description += comma + str(s.quantity) + &#39; x &#39; + productname(s.product) -<a href="#l351" class="line" id="l351"> 351</a> comma = &#39;, &#39; -<a href="#l352" class="line" id="l352"> 352</a> totalamount += shippinginfo.price -<a href="#l353" class="line" id="l353"> 353</a> b = BtcConverter() -<a href="#l354" class="line" id="l354"> 354</a> totsats = int(b.convert_to_btc(float(totalamount/100), &#39;EUR&#39;) * 100000000) -<a href="#l355" class="line" id="l355"> 355</a> totbtc = int(b.convert_to_btc(float(totalamount/100), &#39;EUR&#39;)) -<a href="#l356" class="line" id="l356"> 356</a> print(str(totalamount) + &#39; | &#39; + description) -<a href="#l357" class="line" id="l357"> 357</a> print(str(totsats) + &#39; | &#39; + description) -<a href="#l358" class="line" id="l358"> 358</a> #else: -<a href="#l359" class="line" id="l359"> 359</a> # web.seeother(&#39;/&#39;) -<a href="#l360" class="line" id="l360"> 360</a> #make lightning invoice -<a href="#l361" class="line" id="l361"> 361</a> invoice = createinvoice(totsats, description, session.sessionkey) -<a href="#l362" class="line" id="l362"> 362</a> callsubprocess(&#39;qrencode -s 5 -o &#39;+ staticdir + &#39;qr/&#39; + invoice[&#39;id&#39;]+&#39;.png &#39; + invoice[&#39;payreq&#39;]) -<a href="#l363" class="line" id="l363"> 363</a> #make bitcoin address -<a href="#l364" class="line" id="l364"> 364</a> bitcoinrpc = AuthServiceProxy(rpcauth) -<a href="#l365" class="line" id="l365"> 365</a> newaddress = bitcoinrpc.getnewaddress(&#39;GetDaFuckOuttaHere Butik&#39;) -<a href="#l366" class="line" id="l366"> 366</a> bitcoinrpc = None -<a href="#l367" class="line" id="l367"> 367</a> btcuri = &#39;bitcoin:&#39; + newaddress + &#39;?amount=&#39; + str(totbtc) + &#39;&amp;label=&#39; + description -<a href="#l368" class="line" id="l368"> 368</a> callsubprocess(&#39;qrencode -s 5 -o &#39;+ staticdir + &#39;qr/&#39; + newaddress +&#39;.png &#39; + btcuri) -<a href="#l369" class="line" id="l369"> 369</a> try: -<a href="#l370" class="line" id="l370"> 370</a> db.query(&quot;DELETE FROM invoices WHERE invoice_key=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -<a href="#l371" class="line" id="l371"> 371</a> except: -<a href="#l372" class="line" id="l372"> 372</a> print(&#39;no old invoices to delete&#39;) -<a href="#l373" class="line" id="l373"> 373</a> db.insert(&#39;invoices&#39;, invoice_key=session.sessionkey, btc=newaddress, ln=invoice[&#39;id&#39;], products=description, payment=i.payment, amount=totalamount, totsats=totsats, timestamp=time.strftime(&#39;%Y-%m-%d %H:%M:%S&#39;)) -<a href="#l374" class="line" id="l374"> 374</a> # send mail to op -<a href="#l375" class="line" id="l375"> 375</a> msg = &#39;You got a new order, from &#39; + pendinginfo.firstname + &#39; &#39; + pendinginfo.lastname + &#39; from &#39; + pendinginfo.country + &#39; email: &#39; + pendinginfo.email + &#39; this dude wantz &#39; + description + &#39; for &#39; + str(int(totalamount/100)) + &#39;€ &#39; + &#39; with &#39; + i.payment -<a href="#l376" class="line" id="l376"> 376</a> sendmail(webmaster, &#39;GetDaFuckOuttaHere Shop&#39;, msg) -<a href="#l377" class="line" id="l377"> 377</a> # send mail to customer -<a href="#l378" class="line" id="l378"> 378</a> if i.payment == &#39;Bitcoin&#39;: -<a href="#l379" class="line" id="l379"> 379</a> paymentlink = &#39;paybtc/&#39; -<a href="#l380" class="line" id="l380"> 380</a> if i.payment == &#39;Bitcoin Lightning&#39;: -<a href="#l381" class="line" id="l381"> 381</a> paymentlink = &#39;payln/&#39; -<a href="#l382" class="line" id="l382"> 382</a> if pendinginfo.email != &#39;&#39;: -<a href="#l383" class="line" id="l383"> 383</a> msg = &quot;Thank you for ordering &quot; + description + &quot; at GetDaFuckOuttaHere Shop, we&#39;ll be processing your order as soon as possible and send it to &quot; + pendinginfo.firstname + &#39; &#39; + pendinginfo.lastname + &#39;, &#39; + pendinginfo.address + &#39;, &#39; + str(pendinginfo.postalcode) + &#39;, &#39; + pendinginfo.town + &#39;, &#39; + pendinginfo.country + &#39;. To pay/view status of your order please visit &#39; + baseurl + paymentlink + session.sessionkey -<a href="#l384" class="line" id="l384"> 384</a> sendmail(pendinginfo.email, &#39;GetDaFuckOuttaHere Shop&#39;, msg) -<a href="#l385" class="line" id="l385"> 385</a> if i.payment == &#39;Bitcoin&#39;: -<a href="#l386" class="line" id="l386"> 386</a> return web.seeother(&#39;/paybtc/&#39; + session.sessionkey) -<a href="#l387" class="line" id="l387"> 387</a> if i.payment == &#39;Bitcoin Lightning&#39;: -<a href="#l388" class="line" id="l388"> 388</a> return web.seeother(&#39;/payln/&#39; + session.sessionkey) -<a href="#l389" class="line" id="l389"> 389</a> else: -<a href="#l390" class="line" id="l390"> 390</a> return web.seeother(&#39;/&#39;) -<a href="#l391" class="line" id="l391"> 391</a> -<a href="#l392" class="line" id="l392"> 392</a> class payln: -<a href="#l393" class="line" id="l393"> 393</a> def GET(self, invoice_key): -<a href="#l394" class="line" id="l394"> 394</a> #checkavailable() -<a href="#l395" class="line" id="l395"> 395</a> invoice = db.select(&#39;invoices&#39;, where=&quot;invoice_key=&#39;&quot; + invoice_key + &quot;&#39;&quot;, what=&#39;invoice_key, btc, ln, products, payment, amount, totsats, timestamp, status, datepaid, dateshipped&#39;)[0] -<a href="#l396" class="line" id="l396"> 396</a> lninvoice = getinvoice(invoice.ln) -<a href="#l397" class="line" id="l397"> 397</a> bag = db.query(&quot;SELECT * FROM customerbag WHERE sessionkey=&#39;&quot; + session.sessionkey +&quot;&#39;;&quot;) -<a href="#l398" class="line" id="l398"> 398</a> if invoice_key == session.sessionkey: -<a href="#l399" class="line" id="l399"> 399</a> return render.payln(lninvoice, invoice, bag, productname, float) -<a href="#l400" class="line" id="l400"> 400</a> else: -<a href="#l401" class="line" id="l401"> 401</a> raise web.seeother(&#39;/?error=timeout&#39;) -<a href="#l402" class="line" id="l402"> 402</a> def POST(self, id): -<a href="#l403" class="line" id="l403"> 403</a> data = web.data() -<a href="#l404" class="line" id="l404"> 404</a> data = data.decode(&#39;utf8&#39;).replace(&quot;&#39;&quot;, &#39;&quot;&#39;) -<a href="#l405" class="line" id="l405"> 405</a> data = json.loads(data) -<a href="#l406" class="line" id="l406"> 406</a> print(data) -<a href="#l407" class="line" id="l407"> 407</a> if data[&#39;status&#39;] == &#39;paid&#39;: -<a href="#l408" class="line" id="l408"> 408</a> print(&quot;Hurray it worked&quot;) -<a href="#l409" class="line" id="l409"> 409</a> sold() -<a href="#l410" class="line" id="l410"> 410</a> return render.thankyou(id) -<a href="#l411" class="line" id="l411"> 411</a> -<a href="#l412" class="line" id="l412"> 412</a> class paybtc: -<a href="#l413" class="line" id="l413"> 413</a> def GET(self, invoice_key): -<a href="#l414" class="line" id="l414"> 414</a> invoice = db.select(&#39;invoices&#39;, where=&quot;invoice_key=&#39;&quot; + invoice_key + &quot;&#39;&quot;, what=&#39;invoice_key, btc, ln, products, payment, amount, totsats, timestamp, status, datepaid, dateshipped&#39;)[0] -<a href="#l415" class="line" id="l415"> 415</a> totbtc = float(invoice.totsats * 0.00000001) -<a href="#l416" class="line" id="l416"> 416</a> btcaddress = invoice.btc -<a href="#l417" class="line" id="l417"> 417</a> btcuri = &#39;bitcoin:&#39; + btcaddress + &#39;?amount=&#39; + str(totbtc) + &#39;&amp;label=&#39; + invoice.products -<a href="#l418" class="line" id="l418"> 418</a> bitcoinrpc = AuthServiceProxy(rpcauth) -<a href="#l419" class="line" id="l419"> 419</a> showpayment = bitcoinrpc.listreceivedbyaddress(0, True, True, btcaddress) -<a href="#l420" class="line" id="l420"> 420</a> bitcoinrpc = None -<a href="#l421" class="line" id="l421"> 421</a> if showpayment: -<a href="#l422" class="line" id="l422"> 422</a> for i in showpayment: -<a href="#l423" class="line" id="l423"> 423</a> confirmations = int(i[&#39;confirmations&#39;]) -<a href="#l424" class="line" id="l424"> 424</a> print(str(confirmations)) -<a href="#l425" class="line" id="l425"> 425</a> if invoice.datepaid == None and confirmations &gt; 6: -<a href="#l426" class="line" id="l426"> 426</a> msg = &#39;GetDaFuckOuttaHere order update! someone sent you Bitcoin! &#39; + baseurl + &#39;/paybtc/&#39; + invoice.invoice_key -<a href="#l427" class="line" id="l427"> 427</a> print(msg) -<a href="#l428" class="line" id="l428"> 428</a> sendmail(webmaster, &#39;GetDaFuckOuttaHere Shop&#39;, msg) -<a href="#l429" class="line" id="l429"> 429</a> db.update(&#39;invoices&#39;, where=&quot;invoice_key=&#39;&quot; + invoice.invoice_key + &quot;&#39;&quot;, status=&#39;paid&#39;, datepaid=time.strftime(&#39;%Y-%m-%d %H:%M:%S&#39;)) -<a href="#l430" class="line" id="l430"> 430</a> return render.paybtc(invoice, btcaddress, btcuri, showpayment) -<a href="#l431" class="line" id="l431"> 431</a> -<a href="#l432" class="line" id="l432"> 432</a> class payments: -<a href="#l433" class="line" id="l433"> 433</a> def GET(self): -<a href="#l434" class="line" id="l434"> 434</a> w = web.input() -<a href="#l435" class="line" id="l435"> 435</a> if w: -<a href="#l436" class="line" id="l436"> 436</a> db.update(&#39;invoices&#39;, where=&quot;invoice_key=&#39;&quot; + w.key + &quot;&#39;&quot;, status=w.status) -<a href="#l437" class="line" id="l437"> 437</a> #get the right invoice send mail -<a href="#l438" class="line" id="l438"> 438</a> customer = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + w.key + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;)[0] -<a href="#l439" class="line" id="l439"> 439</a> payment = db.select(&#39;invoices&#39;, where=&quot;invoice_key=&#39;&quot; + w.key + &quot;&#39;&quot;, what=&#39;btc, ln, invoice_key, products, payment, amount, totsats, timestamp, status, datepaid, dateshipped&#39;)[0] -<a href="#l440" class="line" id="l440"> 440</a> if payment.payment == &#39;Bitcoin&#39;: -<a href="#l441" class="line" id="l441"> 441</a> paylink = &#39;paybtc/&#39; -<a href="#l442" class="line" id="l442"> 442</a> elif payment.payment == &#39;Bitcoin Lightning&#39;: -<a href="#l443" class="line" id="l443"> 443</a> paylink = &#39;payln/&#39; -<a href="#l444" class="line" id="l444"> 444</a> if w.status == &#39;thankyou&#39;: -<a href="#l445" class="line" id="l445"> 445</a> msg=&quot;Hi &quot; + customer.firstname + &quot; &quot; + customer.lastname + &quot;, thank you for ordering. You can track the status of your order at &quot; + baseurl + paylink + payment.invoice_key -<a href="#l446" class="line" id="l446"> 446</a> sendmail(customer.email, &#39;GetDaFuckOuttaHere Shop, a thank you!&#39;, msg) -<a href="#l447" class="line" id="l447"> 447</a> elif w.status == &#39;shipped&#39;: -<a href="#l448" class="line" id="l448"> 448</a> msg=&quot;Hi &quot; + customer.firstname + &quot; &quot; + customer.lastname + &quot;, your order has been shipped!. You can track the status of your order at &quot; + baseurl + paylink + payment.invoice_key -<a href="#l449" class="line" id="l449"> 449</a> sendmail(customer.email, &#39;GetDaFuckOuttaHere Shop, order shipped!&#39;, msg) -<a href="#l450" class="line" id="l450"> 450</a> paymentdict = {} -<a href="#l451" class="line" id="l451"> 451</a> listpayments = [] -<a href="#l452" class="line" id="l452"> 452</a> payments = db.select(&#39;invoices&#39;, what=&#39;btc, ln, invoice_key, products, payment, amount, totsats, timestamp, status, datepaid, dateshipped&#39;, order=&#39;timestamp DESC&#39;) -<a href="#l453" class="line" id="l453"> 453</a> for i in payments: -<a href="#l454" class="line" id="l454"> 454</a> pending = db.select(&#39;pending&#39;, where=&quot;invoice_key=&#39;&quot; + i.invoice_key + &quot;&#39;&quot;, what=&#39;country, firstname, lastname, address, town, postalcode, email&#39;) -<a href="#l455" class="line" id="l455"> 455</a> i.update(pending[0]) -<a href="#l456" class="line" id="l456"> 456</a> listpayments.append(i) -<a href="#l457" class="line" id="l457"> 457</a> return renderop.payments(listpayments) -<a href="#l458" class="line" id="l458"> 458</a> -<a href="#l459" class="line" id="l459"> 459</a> class payment: -<a href="#l460" class="line" id="l460"> 460</a> def GET(self, invoice_key): -<a href="#l461" class="line" id="l461"> 461</a> id = db.where(&#39;invoices&#39;, invoice_key=invoice_key)[0][&#39;ln&#39;] -<a href="#l462" class="line" id="l462"> 462</a> invoice = getinvoice(id) -<a href="#l463" class="line" id="l463"> 463</a> return render.payment(invoice) -<a href="#l464" class="line" id="l464"> 464</a> -<a href="#l465" class="line" id="l465"> 465</a> class thankyou: -<a href="#l466" class="line" id="l466"> 466</a> def GET(self, id): -<a href="#l467" class="line" id="l467"> 467</a> return render.thankyou(id) -<a href="#l468" class="line" id="l468"> 468</a> -<a href="#l469" class="line" id="l469"> 469</a> class login: -<a href="#l470" class="line" id="l470"> 470</a> form = web.form.Form( -<a href="#l471" class="line" id="l471"> 471</a> web.form.Textbox(&#39;user&#39;, web.form.notnull, description=&quot;User&quot;), -<a href="#l472" class="line" id="l472"> 472</a> web.form.Password(&#39;password&#39;, web.form.notnull, description=&quot;Passcode&quot;), -<a href="#l473" class="line" id="l473"> 473</a> web.form.Button(&#39;Login&#39;)) -<a href="#l474" class="line" id="l474"> 474</a> def GET(self): -<a href="#l475" class="line" id="l475"> 475</a> if not logged(): -<a href="#l476" class="line" id="l476"> 476</a> loginform = self.form() -<a href="#l477" class="line" id="l477"> 477</a> return render.login(loginform) -<a href="#l478" class="line" id="l478"> 478</a> else: -<a href="#l479" class="line" id="l479"> 479</a> raise web.seeother(&#39;/op&#39;) -<a href="#l480" class="line" id="l480"> 480</a> def POST(self): -<a href="#l481" class="line" id="l481"> 481</a> loginform = self.form() -<a href="#l482" class="line" id="l482"> 482</a> if not loginform.validates(): -<a href="#l483" class="line" id="l483"> 483</a> return render.login(loginform) -<a href="#l484" class="line" id="l484"> 484</a> else: -<a href="#l485" class="line" id="l485"> 485</a> i = web.input() -<a href="#l486" class="line" id="l486"> 486</a> if (i.user,i.password) in allowed: -<a href="#l487" class="line" id="l487"> 487</a> session.login = 1 -<a href="#l488" class="line" id="l488"> 488</a> raise web.seeother(&#39;/op&#39;) -<a href="#l489" class="line" id="l489"> 489</a> else: -<a href="#l490" class="line" id="l490"> 490</a> return render.login(loginform) -<a href="#l491" class="line" id="l491"> 491</a> -<a href="#l492" class="line" id="l492"> 492</a> class logout: -<a href="#l493" class="line" id="l493"> 493</a> def GET(self): -<a href="#l494" class="line" id="l494"> 494</a> session.login = 0 -<a href="#l495" class="line" id="l495"> 495</a> raise web.seeother(&#39;/&#39;) -<a href="#l496" class="line" id="l496"> 496</a> -<a href="#l497" class="line" id="l497"> 497</a> class op: -<a href="#l498" class="line" id="l498"> 498</a> def GET(self): -<a href="#l499" class="line" id="l499"> 499</a> if logged(): -<a href="#l500" class="line" id="l500"> 500</a> return renderop.operator() -<a href="#l501" class="line" id="l501"> 501</a> else: -<a href="#l502" class="line" id="l502"> 502</a> raise web.seeother(&#39;/login&#39;) -<a href="#l503" class="line" id="l503"> 503</a> -<a href="#l504" class="line" id="l504"> 504</a> class categories: -<a href="#l505" class="line" id="l505"> 505</a> form = web.form.Form( -<a href="#l506" class="line" id="l506"> 506</a> web.form.Textbox(&#39;category&#39;, web.form.notnull, description=&quot;Add Category:&quot;), -<a href="#l507" class="line" id="l507"> 507</a> web.form.Button(&#39;Add&#39;)) -<a href="#l508" class="line" id="l508"> 508</a> def GET(self): -<a href="#l509" class="line" id="l509"> 509</a> if logged(): -<a href="#l510" class="line" id="l510"> 510</a> i = web.input(delete=None) -<a href="#l511" class="line" id="l511"> 511</a> if i.delete: -<a href="#l512" class="line" id="l512"> 512</a> db.delete(&#39;categories&#39;, where=&#39;id=&#39;+i.delete) -<a href="#l513" class="line" id="l513"> 513</a> listcategories = db.query(&quot;SELECT * FROM categories ORDER BY id DESC&quot;) -<a href="#l514" class="line" id="l514"> 514</a> addcategory = self.form() -<a href="#l515" class="line" id="l515"> 515</a> return renderop.categories(listcategories,addcategory) -<a href="#l516" class="line" id="l516"> 516</a> else: -<a href="#l517" class="line" id="l517"> 517</a> raise web.seeother(&#39;/login&#39;) -<a href="#l518" class="line" id="l518"> 518</a> def POST(self): -<a href="#l519" class="line" id="l519"> 519</a> addcategory = self.form() -<a href="#l520" class="line" id="l520"> 520</a> i = web.input() -<a href="#l521" class="line" id="l521"> 521</a> db.insert(&#39;categories&#39;, category=i.category) -<a href="#l522" class="line" id="l522"> 522</a> raise web.seeother(&#39;/categories&#39;) -<a href="#l523" class="line" id="l523"> 523</a> -<a href="#l524" class="line" id="l524"> 524</a> -<a href="#l525" class="line" id="l525"> 525</a> class products: -<a href="#l526" class="line" id="l526"> 526</a> listcategories = db.query(&quot;SELECT * FROM categories ORDER BY id DESC&quot;) -<a href="#l527" class="line" id="l527"> 527</a> p = [] -<a href="#l528" class="line" id="l528"> 528</a> for i in listcategories: -<a href="#l529" class="line" id="l529"> 529</a> p.append(i.category) -<a href="#l530" class="line" id="l530"> 530</a> #p = listcategories[0] -<a href="#l531" class="line" id="l531"> 531</a> form = web.form.Form( -<a href="#l532" class="line" id="l532"> 532</a> web.form.Dropdown(&#39;category&#39;, p, web.form.notnull, description=&quot;Category:&quot;), -<a href="#l533" class="line" id="l533"> 533</a> web.form.Textbox(&#39;name&#39;, web.form.notnull, description=&quot;Name:&quot;), -<a href="#l534" class="line" id="l534"> 534</a> web.form.Textarea(&#39;description&#39;, web.form.notnull, description=&quot;Description:&quot;), -<a href="#l535" class="line" id="l535"> 535</a> web.form.Textbox(&#39;price&#39;, web.form.regexp(&#39;\d+&#39;, &#39;number thanx!&#39;), web.form.notnull, description=&quot;Price in cents&quot;), -<a href="#l536" class="line" id="l536"> 536</a> web.form.Textbox(&#39;available&#39;, web.form.notnull, web.form.regexp(&#39;\d+&#39;, &#39;number dumbass!&#39;), description=&quot;Available&quot;), -<a href="#l537" class="line" id="l537"> 537</a> web.form.Textbox(&#39;priority&#39;, web.form.notnull, web.form.regexp(&#39;\d+&#39;, &#39;number dumbass!&#39;), description=&quot;Priority (high value more priority)&quot;), -<a href="#l538" class="line" id="l538"> 538</a> web.form.Button(&#39;Save&#39;)) -<a href="#l539" class="line" id="l539"> 539</a> def GET(self, idvalue): -<a href="#l540" class="line" id="l540"> 540</a> if logged(): -<a href="#l541" class="line" id="l541"> 541</a> i = web.input() -<a href="#l542" class="line" id="l542"> 542</a> if i: -<a href="#l543" class="line" id="l543"> 543</a> if i.cmd == &#39;del&#39;: -<a href="#l544" class="line" id="l544"> 544</a> db.delete(&#39;products&#39;, where=&#39;id=&#39; + idvalue) -<a href="#l545" class="line" id="l545"> 545</a> imgdir = staticdir + &#39;img/&#39; + idvalue -<a href="#l546" class="line" id="l546"> 546</a> try: -<a href="#l547" class="line" id="l547"> 547</a> shutil.rmtree(imgdir,ignore_errors=True,onerror=None) -<a href="#l548" class="line" id="l548"> 548</a> except: -<a href="#l549" class="line" id="l549"> 549</a> print(&#39;no picture folder, nothing to remove...&#39;) -<a href="#l550" class="line" id="l550"> 550</a> pass -<a href="#l551" class="line" id="l551"> 551</a> raise web.seeother(&#39;/products/&#39;) -<a href="#l552" class="line" id="l552"> 552</a> if i.cmd == &#39;removeimg&#39;: -<a href="#l553" class="line" id="l553"> 553</a> os.remove(staticdir + &#39;/img/&#39; + idvalue + &#39;/&#39; + i.img) -<a href="#l554" class="line" id="l554"> 554</a> os.remove(staticdir + &#39;/img/&#39; + idvalue + &#39;/web/&#39; + i.img) -<a href="#l555" class="line" id="l555"> 555</a> os.remove(staticdir + &#39;/img/&#39; + idvalue + &#39;/thumb/&#39; + i.img) -<a href="#l556" class="line" id="l556"> 556</a> raise web.seeother(&#39;/products/&#39; + idvalue) -<a href="#l557" class="line" id="l557"> 557</a> organizepics(idvalue) -<a href="#l558" class="line" id="l558"> 558</a> addproduct = self.form() -<a href="#l559" class="line" id="l559"> 559</a> addproduct.fill(available=&#39;1&#39;, priority=&#39;1&#39;) -<a href="#l560" class="line" id="l560"> 560</a> if idvalue: -<a href="#l561" class="line" id="l561"> 561</a> oldinfo = db.select(&#39;products&#39;, where=&quot;id=&quot; + idvalue, what=&#39;name, description, price, available, priority, category&#39;) -<a href="#l562" class="line" id="l562"> 562</a> oldinfo = oldinfo[0] -<a href="#l563" class="line" id="l563"> 563</a> addproduct.fill(name=oldinfo.name, description=oldinfo.description, price=oldinfo.price, available=oldinfo.available, priority=oldinfo.priority, category=oldinfo.category) -<a href="#l564" class="line" id="l564"> 564</a> listproducts = db.query(&quot;SELECT * FROM products ORDER BY priority DESC&quot;) -<a href="#l565" class="line" id="l565"> 565</a> imgdir = staticdir + &#39;img/&#39; + idvalue + &#39;/web/&#39; -<a href="#l566" class="line" id="l566"> 566</a> try: -<a href="#l567" class="line" id="l567"> 567</a> productimages = sorted(os.listdir(imgdir)) -<a href="#l568" class="line" id="l568"> 568</a> print(productimages) -<a href="#l569" class="line" id="l569"> 569</a> except: -<a href="#l570" class="line" id="l570"> 570</a> productimages = [] -<a href="#l571" class="line" id="l571"> 571</a> print(&#39;No productimages for this product&#39;) -<a href="#l572" class="line" id="l572"> 572</a> return renderop.products(addproduct, listproducts, productimages, idvalue) -<a href="#l573" class="line" id="l573"> 573</a> else: -<a href="#l574" class="line" id="l574"> 574</a> raise web.seeother(&#39;/login&#39;) -<a href="#l575" class="line" id="l575"> 575</a> def POST(self, idvalue): -<a href="#l576" class="line" id="l576"> 576</a> listproducts = db.query(&quot;SELECT * FROM products ORDER BY priority DESC&quot;) -<a href="#l577" class="line" id="l577"> 577</a> addproduct = self.form() -<a href="#l578" class="line" id="l578"> 578</a> if logged(): -<a href="#l579" class="line" id="l579"> 579</a> i = web.input(imgfile={}) -<a href="#l580" class="line" id="l580"> 580</a> for p in i: -<a href="#l581" class="line" id="l581"> 581</a> print(p) -<a href="#l582" class="line" id="l582"> 582</a> if i.imgfile != {}: -<a href="#l583" class="line" id="l583"> 583</a> if idvalue == &#39;&#39;: -<a href="#l584" class="line" id="l584"> 584</a> print(&#39;cant upload a picture to a non existing product&#39;) -<a href="#l585" class="line" id="l585"> 585</a> raise web.seeother(&#39;/products/&#39;) -<a href="#l586" class="line" id="l586"> 586</a> print(i.imgfile.filename) -<a href="#l587" class="line" id="l587"> 587</a> if i.imgfile.filename == &#39;&#39;: -<a href="#l588" class="line" id="l588"> 588</a> print(&#39;hmmm... no image to upload&#39;) -<a href="#l589" class="line" id="l589"> 589</a> raise web.seeother(&#39;/products/&#39; + idvalue) -<a href="#l590" class="line" id="l590"> 590</a> print(&#39;YEAH, Upload image!&#39;) -<a href="#l591" class="line" id="l591"> 591</a> -<a href="#l592" class="line" id="l592"> 592</a> ##---------- UPLOAD IMAGE ---------- -<a href="#l593" class="line" id="l593"> 593</a> -<a href="#l594" class="line" id="l594"> 594</a> imgdir = staticdir + &#39;img/&#39; + idvalue -<a href="#l595" class="line" id="l595"> 595</a> os.makedirs(imgdir, exist_ok=True) -<a href="#l596" class="line" id="l596"> 596</a> imgpath=i.imgfile.filename.replace(&#39;\\&#39;,&#39;/&#39;) # replaces the windows-style slashes with linux ones. -<a href="#l597" class="line" id="l597"> 597</a> #filename=filepath.split(&#39;/&#39;)[-1] # splits the and chooses the last part (the filename with extension) -<a href="#l598" class="line" id="l598"> 598</a> #filename = hashlib.md5(str(random.getrandbits(256)).encode(&#39;utf-8&#39;)).hexdigest() + &#39;.jpeg&#39; -<a href="#l599" class="line" id="l599"> 599</a> imgname = str(len(os.listdir(imgdir))).zfill(3) + &#39;.jpeg&#39; -<a href="#l600" class="line" id="l600"> 600</a> fout = open(imgdir +&#39;/&#39;+ imgname,&#39;wb&#39;) # creates the file where the uploaded file should be stored -<a href="#l601" class="line" id="l601"> 601</a> fout.write(i.imgfile.file.read()) # writes the uploaded file to the newly created file. -<a href="#l602" class="line" id="l602"> 602</a> fout.close() # closes the file, upload complete. -<a href="#l603" class="line" id="l603"> 603</a> -<a href="#l604" class="line" id="l604"> 604</a> ##---------- OPEN FILE &amp; CHEKC IF JPEG -------- -<a href="#l605" class="line" id="l605"> 605</a> -<a href="#l606" class="line" id="l606"> 606</a> image = Image.open(imgdir +&#39;/&#39;+ imgname) -<a href="#l607" class="line" id="l607"> 607</a> if image.format != &#39;JPEG&#39;: -<a href="#l608" class="line" id="l608"> 608</a> os.remove(imgdir +&#39;/&#39;+ imgname) -<a href="#l609" class="line" id="l609"> 609</a> raise web.seeother(&#39;/products/&#39; + idvalue) -<a href="#l610" class="line" id="l610"> 610</a> -<a href="#l611" class="line" id="l611"> 611</a> ##---------- RESIZE IMAGE ----------- -<a href="#l612" class="line" id="l612"> 612</a> try: -<a href="#l613" class="line" id="l613"> 613</a> os.makedirs(imgdir + &#39;/web/&#39;, exist_ok=True) -<a href="#l614" class="line" id="l614"> 614</a> os.makedirs(imgdir + &#39;/thumb/&#39;, exist_ok=True) -<a href="#l615" class="line" id="l615"> 615</a> except: -<a href="#l616" class="line" id="l616"> 616</a> print(&#39;Folders is&#39;) -<a href="#l617" class="line" id="l617"> 617</a> image.thumbnail((900,900), Image.ANTIALIAS) -<a href="#l618" class="line" id="l618"> 618</a> image.save(imgdir + &#39;/web/&#39; + imgname) -<a href="#l619" class="line" id="l619"> 619</a> image.thumbnail((300,300), Image.ANTIALIAS) -<a href="#l620" class="line" id="l620"> 620</a> image.save(imgdir + &#39;/thumb/&#39; + imgname) -<a href="#l621" class="line" id="l621"> 621</a> -<a href="#l622" class="line" id="l622"> 622</a> organizepics(idvalue) -<a href="#l623" class="line" id="l623"> 623</a> raise web.seeother(&#39;/products/&#39; + idvalue) -<a href="#l624" class="line" id="l624"> 624</a> if not addproduct.validates(): -<a href="#l625" class="line" id="l625"> 625</a> raise web.seeother(&#39;/products/&#39; + idvalue) -<a href="#l626" class="line" id="l626"> 626</a> else: -<a href="#l627" class="line" id="l627"> 627</a> if idvalue: -<a href="#l628" class="line" id="l628"> 628</a> db.update(&#39;products&#39;, where=&#39;id=&#39; + idvalue, category=i.category, name=i.name, description=i.description, price=i.price, available=i.available, sold=0, priority=i.priority, dateadded=datetime.datetime.now()) -<a href="#l629" class="line" id="l629"> 629</a> else: -<a href="#l630" class="line" id="l630"> 630</a> db.insert(&#39;products&#39;, category=i.category, name=i.name, description=i.description, price=i.price, available=i.available, sold=0, priority=i.priority, dateadded=datetime.datetime.now()) -<a href="#l631" class="line" id="l631"> 631</a> raise web.seeother(&#39;/products/&#39; + idvalue) -<a href="#l632" class="line" id="l632"> 632</a> else: -<a href="#l633" class="line" id="l633"> 633</a> raise web.seeother(&#39;/login&#39;) -<a href="#l634" class="line" id="l634"> 634</a> -<a href="#l635" class="line" id="l635"> 635</a> class shipping: -<a href="#l636" class="line" id="l636"> 636</a> form = web.form.Form( -<a href="#l637" class="line" id="l637"> 637</a> web.form.Textbox(&#39;country&#39;, web.form.notnull, description=&quot;Country:&quot;), -<a href="#l638" class="line" id="l638"> 638</a> web.form.Textbox(&#39;price&#39;, web.form.regexp(&#39;\d+&#39;, &#39;number thanx!&#39;), web.form.notnull, description=&quot;Price in cents&quot;), -<a href="#l639" class="line" id="l639"> 639</a> web.form.Textbox(&#39;days&#39;, web.form.regexp(&#39;\d+&#39;, &#39;number thanx!&#39;), web.form.notnull, description=&quot;Shipping in days&quot;), -<a href="#l640" class="line" id="l640"> 640</a> web.form.Button(&#39;Add shipping country&#39;)) -<a href="#l641" class="line" id="l641"> 641</a> def GET(self, idvalue): -<a href="#l642" class="line" id="l642"> 642</a> if logged(): -<a href="#l643" class="line" id="l643"> 643</a> addcountry = self.form() -<a href="#l644" class="line" id="l644"> 644</a> if idvalue: -<a href="#l645" class="line" id="l645"> 645</a> oldinfo = db.select(&#39;shipping&#39;, where=&quot;id=&quot; + idvalue, what=&#39;country, price, days&#39;) -<a href="#l646" class="line" id="l646"> 646</a> oldinfo = oldinfo[0] -<a href="#l647" class="line" id="l647"> 647</a> addcountry.fill(country=oldinfo.country, price=oldinfo.price, days=oldinfo.days) -<a href="#l648" class="line" id="l648"> 648</a> listcountries = db.query(&quot;SELECT * FROM shipping ORDER BY country DESC&quot;) -<a href="#l649" class="line" id="l649"> 649</a> return renderop.shipping(addcountry, listcountries) -<a href="#l650" class="line" id="l650"> 650</a> else: -<a href="#l651" class="line" id="l651"> 651</a> raise web.seeother(&#39;/login&#39;) -<a href="#l652" class="line" id="l652"> 652</a> def POST(self, idvalue): -<a href="#l653" class="line" id="l653"> 653</a> if logged(): -<a href="#l654" class="line" id="l654"> 654</a> addcountry = self.form() -<a href="#l655" class="line" id="l655"> 655</a> if not addcountry.validates(): -<a href="#l656" class="line" id="l656"> 656</a> listcountries = db.query(&quot;SELECT * FROM shipping ORDER BY country DESC&quot;) -<a href="#l657" class="line" id="l657"> 657</a> return renderop.shipping(addcountry, listcountries) -<a href="#l658" class="line" id="l658"> 658</a> else: -<a href="#l659" class="line" id="l659"> 659</a> i = web.input() -<a href="#l660" class="line" id="l660"> 660</a> if idvalue: -<a href="#l661" class="line" id="l661"> 661</a> db.update(&#39;shipping&#39;, where=&#39;id=&#39; + idvalue, country=i.country, price=i.price, days=i.days) -<a href="#l662" class="line" id="l662"> 662</a> else: -<a href="#l663" class="line" id="l663"> 663</a> db.insert(&#39;shipping&#39;, country=i.country, price=i.price, days=i.days) -<a href="#l664" class="line" id="l664"> 664</a> raise web.seeother(&#39;/shipping/&#39;) -<a href="#l665" class="line" id="l665"> 665</a> else: -<a href="#l666" class="line" id="l666"> 666</a> raise web.seeother(&#39;/login&#39;) -<a href="#l667" class="line" id="l667"> 667</a> -<a href="#l668" class="line" id="l668"> 668</a> class bitcoin: -<a href="#l669" class="line" id="l669"> 669</a> def GET(self): -<a href="#l670" class="line" id="l670"> 670</a> if logged(): -<a href="#l671" class="line" id="l671"> 671</a> bitcoinrpc = AuthServiceProxy(rpcauth) -<a href="#l672" class="line" id="l672"> 672</a> wallet = bitcoinrpc.getwalletinfo() -<a href="#l673" class="line" id="l673"> 673</a> bitcoinrpc = None -<a href="#l674" class="line" id="l674"> 674</a> return renderop.bitcoin(wallet) -<a href="#l675" class="line" id="l675"> 675</a> -<a href="#l676" class="line" id="l676"> 676</a> application = app.wsgifunc() -</pre> -</div> -</body> -</html> diff --git a/public_html/static/git/files.html b/public_html/static/git/files.html @@ -1,72 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<title>Files - getdafuckouttahere.net - Unnamed repository; edit this file &#39;description&#39; to name the repository. -</title> -<link rel="icon" type="image/png" href="favicon.png" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed" href="atom.xml" /> -<link rel="alternate" type="application/atom+xml" title="getdafuckouttahere.net Atom Feed (tags)" href="tags.xml" /> -<link rel="stylesheet" type="text/css" href="style.css" /> -</head> -<body> -<table><tr><td><a href="../"><img src="logo.png" alt="" width="32" height="32" /></a></td><td><h1>getdafuckouttahere.net</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository. -</span></td></tr><tr><td></td><td> -<a href="log.html">Log</a> | <a href="files.html">Files</a> | <a href="refs.html">Refs</a></td></tr></table> -<hr/> -<div id="content"> -<table id="files"><thead> -<tr><td><b>Mode</b></td><td><b>Name</b></td><td class="num" align="right"><b>Size</b></td></tr> -</thead><tbody> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/Now-Black.otf.html">public_html/static/fonts/Now-Black.otf</a></td><td class="num" align="right">30676B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/Now-Bold.otf.html">public_html/static/fonts/Now-Bold.otf</a></td><td class="num" align="right">30624B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/Now-Light.otf.html">public_html/static/fonts/Now-Light.otf</a></td><td class="num" align="right">30216B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/Now-Medium.otf.html">public_html/static/fonts/Now-Medium.otf</a></td><td class="num" align="right">30544B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/Now-Regular.otf.html">public_html/static/fonts/Now-Regular.otf</a></td><td class="num" align="right">30132B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/Now-Thin.otf.html">public_html/static/fonts/Now-Thin.otf</a></td><td class="num" align="right">29764B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/OFL-FAQ.txt.html">public_html/static/fonts/OFL-FAQ.txt</a></td><td class="num" align="right">429L</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/Terminus-Bold.ttf.html">public_html/static/fonts/Terminus-Bold.ttf</a></td><td class="num" align="right">308732B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/Terminus-Italic.ttf.html">public_html/static/fonts/Terminus-Italic.ttf</a></td><td class="num" align="right">297620B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/Terminus.ttf.html">public_html/static/fonts/Terminus.ttf</a></td><td class="num" align="right">308056B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/__MACOSX/._Now-Black.otf.html">public_html/static/fonts/__MACOSX/._Now-Black.otf</a></td><td class="num" align="right">239B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/__MACOSX/._Now-Bold.otf.html">public_html/static/fonts/__MACOSX/._Now-Bold.otf</a></td><td class="num" align="right">239B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/__MACOSX/._Now-Light.otf.html">public_html/static/fonts/__MACOSX/._Now-Light.otf</a></td><td class="num" align="right">239B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/__MACOSX/._Now-Medium.otf.html">public_html/static/fonts/__MACOSX/._Now-Medium.otf</a></td><td class="num" align="right">239B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/__MACOSX/._Now-Regular.otf.html">public_html/static/fonts/__MACOSX/._Now-Regular.otf</a></td><td class="num" align="right">239B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/__MACOSX/._Now-Thin.otf.html">public_html/static/fonts/__MACOSX/._Now-Thin.otf</a></td><td class="num" align="right">239B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/__MACOSX/._OFL-FAQ.txt.html">public_html/static/fonts/__MACOSX/._OFL-FAQ.txt</a></td><td class="num" align="right">239B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/fonts/Terminus-Bold.ttf.html">public_html/static/fonts/fonts/Terminus-Bold.ttf</a></td><td class="num" align="right">308732B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/fonts/Terminus-Italic.ttf.html">public_html/static/fonts/fonts/Terminus-Italic.ttf</a></td><td class="num" align="right">297620B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/fonts/Terminus.ttf.html">public_html/static/fonts/fonts/Terminus.ttf</a></td><td class="num" align="right">308056B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/fonts/lmmono10-italic.otf.html">public_html/static/fonts/fonts/lmmono10-italic.otf</a></td><td class="num" align="right">63584B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/fonts/lmmono10-regular.otf.html">public_html/static/fonts/fonts/lmmono10-regular.otf</a></td><td class="num" align="right">64684B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/fonts/roberta.ttf.html">public_html/static/fonts/fonts/roberta.ttf</a></td><td class="num" align="right">48640B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/lmmono10-italic.otf.html">public_html/static/fonts/lmmono10-italic.otf</a></td><td class="num" align="right">63584B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/lmmono10-regular.otf.html">public_html/static/fonts/lmmono10-regular.otf</a></td><td class="num" align="right">64684B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/now.zip.html">public_html/static/fonts/now.zip</a></td><td class="num" align="right">142727B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/fonts/roberta.ttf.html">public_html/static/fonts/roberta.ttf</a></td><td class="num" align="right">48640B</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/static/scrollcookie.js.html">public_html/static/scrollcookie.js</a></td><td class="num" align="right">9L</td></tr> -<tr><td>-rwxr-xr-x</td><td><a href="file/public_html/static/style.css.html">public_html/static/style.css</a></td><td class="num" align="right">228L</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/templates/base.html.html">public_html/templates/base.html</a></td><td class="num" align="right">18L</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/templates/bigpic.html.html">public_html/templates/bigpic.html</a></td><td class="num" align="right">5L</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/templates/bitcoin.html.html">public_html/templates/bitcoin.html</a></td><td class="num" align="right">6L</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/templates/categories.html.html">public_html/templates/categories.html</a></td><td class="num" align="right">13L</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/templates/checkout.html.html">public_html/templates/checkout.html</a></td><td class="num" align="right">29L</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/templates/index.html.html">public_html/templates/index.html</a></td><td class="num" align="right">64L</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/templates/l33t.html.html">public_html/templates/l33t.html</a></td><td class="num" align="right">14L</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/templates/login.html.html">public_html/templates/login.html</a></td><td class="num" align="right">13L</td></tr> -<tr><td>-rw-r--r--</td><td><a href="file/public_html/te