From 1c45c7f7cd6a60f074c9f6608c3b6ac2133d0473 Mon Sep 17 00:00:00 2001 From: Jake Paul Date: Sun, 23 Nov 2025 00:01:12 -0600 Subject: [PATCH] reupload --- .env.example | 3 + .gitignore | 4 ++ README.md | 24 +++++++ jurisdiction.txt | 3 + main.py | 117 ++++++++++++++++++++++++++++++++ posts.json | 10 +++ requirements.txt | Bin 0 -> 748 bytes static/jquery-3.7.1.slim.min.js | 2 + static/main.js | 68 +++++++++++++++++++ static/nah.png | Bin 0 -> 36499 bytes static/style.css | 57 ++++++++++++++++ static/threads.js | 9 +++ static/yeah.png | Bin 0 -> 40183 bytes templates/header.html | 4 ++ templates/main.html | 75 ++++++++++++++++++++ templates/reply.html | 76 +++++++++++++++++++++ 16 files changed, 452 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 README.md create mode 100644 jurisdiction.txt create mode 100644 main.py create mode 100644 posts.json create mode 100644 requirements.txt create mode 100644 static/jquery-3.7.1.slim.min.js create mode 100644 static/main.js create mode 100644 static/nah.png create mode 100644 static/style.css create mode 100644 static/threads.js create mode 100644 static/yeah.png create mode 100644 templates/header.html create mode 100644 templates/main.html create mode 100644 templates/reply.html diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..2e028ca --- /dev/null +++ b/.env.example @@ -0,0 +1,3 @@ +PROXY=wsrv.nl +RULES=./jurisdiction.txt +DATABASE="./posts.json" \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a7d4056 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +__pycache__/ +testing.json +templates/test.html +.env \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..3f59a95 --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# buddyboard +An imageboard for friends written in Flask. Uses a flatfile (json) database, and strongly encourages hotlinking of images. + +# Caveats +- No admin panel/way to delete posts autonomously (yet) +- jQuery functions are partially wonky +- No one's going to use this crap +- Written in Flask + - *Novice* Flask, may I add + +# How to install +*Don't!* + +- `pip install -r requirements.txt` +- `py -u ./main.py` or deployable equivalent + - *Again, never deploy this code!* + +# How to contribute +*Don't!* + +# Credits +- Stack Overflow +- AI for tips on how to refactor the stupid ass reply route +- Early testers who Shall Not Be Named \ No newline at end of file diff --git a/jurisdiction.txt b/jurisdiction.txt new file mode 100644 index 0000000..c913bd1 --- /dev/null +++ b/jurisdiction.txt @@ -0,0 +1,3 @@ +No slurs +No prejudice +Be nice \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..50438d5 --- /dev/null +++ b/main.py @@ -0,0 +1,117 @@ + +from flask import Flask, render_template, request, redirect, url_for +from markupsafe import escape +import os +import json +import uuid +from dotenv import load_dotenv, dotenv_values +# from werkzeug.routing import IntegerConverter +from flask_limiter import Limiter +from flask_limiter.util import get_remote_address + +app = Flask(__name__) +limiter = Limiter(get_remote_address, app=app) +load_dotenv() + +database = os.getenv("DATABASE") + +def postsExist(): + try: + with open(os.getenv("DATABASE"), 'a') as f: + pass + except IOError as e: + print(f"Error ensuring posts exist: {e}") + +@app.before_request +def before_request(): + postsExist() + +@app.route('/', methods=['GET']) +def index(): + try: + with open(database, "r", encoding='utf-8') as data: + posts = json.load(data) + except FileNotFoundError: + print("posts.json not found, starting fresh.") + except Exception as e: + print(f"Error reading posts.json: {e}") + return "An error occurred while loading posts. Please try again later.", 500 + + return render_template("main.html", posts=posts, proxy=os.getenv("PROXY")) + +@app.route('/reply/', methods=['GET']) +def replyIndex(post_id): + try: + with open(database, "r", encoding='utf-8') as data: + replies = json.load(data) + except FileNotFoundError: + print("posts.json not found, starting fresh.") + except Exception as e: + print(f"Error reading posts.json: {e}") + return "An error occurred while loading posts. Please try again later.", 500 + + parent_post = next((p for p in replies if p.get('id') == post_id), None) + if parent_post is None: + return "Post not found", 404 + + return render_template('reply.html', post=parent_post, replies=replies, proxy=os.getenv("PROXY")) + +@app.route('/vote//', methods=['POST']) +@limiter.limit("8/day", key_func=get_remote_address) +def rate(post, rating): + try: + with open(database, "r+", encoding='utf-8') as data: + posts = json.load(data) + found = False + for i in posts: + if i['id'] == post: + i['yeahs'] += rating + found = True + break + + if not found: + data = { + "status": 404 + } + return data + + data.seek(0) + json.dump(posts, data, indent=4) + data = { + "status": 200 + } + return data + except Exception as e: + print(f"Error reading posts.json: {e}") + return "An error occurred while loading posts. Please try again later.", 500 + +@app.route('/reply/', methods=['POST']) +@app.route('/', methods=['POST']) +def add_data(post_id=None): + + post = {} + post['id'] = str(uuid.uuid1()) + post['user'] = request.form.get('user', '').strip() or 'anon' + post['content'] = escape(request.form.get('data', '')) + post['yeahs'] = 0 + post['replying'] = post_id or None + post['image'] = request.form.get('image', '') or None + + if not post: + return "Say something!", 400 + + + final_user_name = post['user'] if post['user'] else 'anon' + try: + with open(database, "r+", encoding='utf-8') as read: + file = json.load(read) + file.append(post) + with open(database, "w", encoding='utf-8') as write: + json.dump(file, write, indent=4) + return redirect(request.path) + except Exception as e: + print(f"Error writing to posts.json: {e}") + return "An error occurred while saving your post. Please try again.", 500 + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=8000, debug=True) diff --git a/posts.json b/posts.json new file mode 100644 index 0000000..3d8018d --- /dev/null +++ b/posts.json @@ -0,0 +1,10 @@ +[ + { + "id": "34282e73-c446-11f0-a6b9-30d0421378ab", + "user": "zav", + "content": "Buddyboard is (partially) back in business!\r\n\r\nFrom testing database:\r\n"Fixes include:- less crappy reply function (sorry)- 50% less AI code (also sorry)- Actual image linking! No more bullshit syntax! (also also ALSO sorry)"\r\n\r\nHave fun!", + "yeahs": 0, + "replying": null, + "image": "https://snootbooru.com/data/posts/73546_b28e019fcffbd588.png" + } +] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..87c9cab22825dea494e9d6d6a439712961b8ab49 GIT binary patch literal 748 zcmZ9K%}T>i5QS$g_$Vn&s>Lqci3?E>T)33j#8z#Z(ll0mc=bCoNrNR^67HFM{%(GM zo^55XwzhXGZEKf2sf}#L8r!Lz*xd0sxUdWMC#Q=hnkbpu|) zliQAW;ZxEWcnUa#t?lE$AqO+(xJDzlrgIRdMwT66iQST;Vu>k|$cOwy5+M!xIXVlU zsjX#4t}~{zV)Ditd1EqjwAYMG>ML~O>^bMAhqLNoi&tgZqm;O#gciP>>%XVFZn_13 z;QIw%@*_n#pLog&wiecvW7=1L(SX`7JdL_d$WxM298%I;WZJ;4Tg=I>`(F4=W^x}B z_c&aTO!uIs`d(818$wMfcD5v&k{#b$xa$9oEjn{%#gn?5q2V1oo6g4*il4Abw_#7* fp&khahmXvt+i%`&m!Q9!Xlf6h!yFBSUhn4*8+mMN literal 0 HcmV?d00001 diff --git a/static/jquery-3.7.1.slim.min.js b/static/jquery-3.7.1.slim.min.js new file mode 100644 index 0000000..35906b9 --- /dev/null +++ b/static/jquery-3.7.1.slim.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.7.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/animatedSelector,-effects/Tween | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},m=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||m).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/animatedSelector,-effects/Tween",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),b=new RegExp(ge+"|>"),A=new RegExp(g),D=new RegExp("^"+t+"$"),N={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+d),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},L=/^(?:input|select|textarea|button)$/i,j=/^h\d$/i,O=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,P=/[+~]/,H=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),q=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=K(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{E.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){E={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&(V(e),e=e||C,T)){if(11!==d&&(u=O.exec(t)))if(i=u[1]){if(9===d){if(!(a=e.getElementById(i)))return n;if(a.id===i)return E.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return E.call(n,a),n}else{if(u[2])return E.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return E.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||p&&p.test(t))){if(c=t,f=e,1===d&&(b.test(t)||m.test(t))){(f=P.test(t)&&X(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=k)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+G(l[o]);c=l.join(",")}try{return E.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>x.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function B(e){return e[k]=!0,e}function F(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function $(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return B(function(o){return o=+o,B(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function X(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=C&&9===n.nodeType&&n.documentElement&&(r=(C=n).documentElement,T=!ce.isXMLDoc(C),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=C&&(t=C.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=F(function(e){return r.appendChild(e).id=ce.expando,!C.getElementsByName||!C.getElementsByName(ce.expando).length}),le.disconnectedMatch=F(function(e){return i.call(e,"*")}),le.scope=F(function(){return C.querySelectorAll(":scope")}),le.cssHas=F(function(){try{return C.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(x.filter.ID=function(e){var t=e.replace(H,q);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&T){var n=t.getElementById(e);return n?[n]:[]}}):(x.filter.ID=function(e){var n=e.replace(H,q);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},x.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&T){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),x.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},x.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&T)return t.getElementsByClassName(e)},p=[],F(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||p.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+k+"-]").length||p.push("~="),e.querySelectorAll("a#"+k+"+*").length||p.push(".#.+[+~]"),e.querySelectorAll(":checked").length||p.push(":checked"),(t=C.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&p.push(":enabled",":disabled"),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||p.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||p.push(":has"),p=p.length&&new RegExp(p.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===C||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),C}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),T&&!h[t+" "]&&(!p||!p.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(H,q),e[3]=(e[3]||e[4]||e[5]||"").replace(H,q),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return N.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&A.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(H,q).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||E,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:k.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:m,!0)),C.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=m.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,E=ce(m);var S=/^(?:parents|prev(?:Until|All))/,A={children:!0,contents:!0,next:!0,prev:!0};function D(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;re=m.createDocumentFragment().appendChild(m.createElement("div")),(be=m.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),re.appendChild(be),le.checkClone=re.cloneNode(!0).cloneNode(!0).lastChild.checked,re.innerHTML="",le.noCloneChecked=!!re.cloneNode(!0).lastChild.defaultValue,re.innerHTML="",le.option=!!re.lastChild;var Te={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Ee(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function ke(e,t){for(var n=0,r=e.length;n",""]);var Se=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),d=[],p=0,h=e.length;p\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Me(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Ie(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function We(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n
",2===yt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=m.implementation.createHTMLDocument("")).createElement("base")).href=m.location.href,t.head.appendChild(r)):t=m),o=!n&&[],(i=C.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||K})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Qe(le.pixelPosition,function(e,t){if(t)return t=Ve(e,n),$e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0 { + if (messageContainer && messageContainer.parentNode) { + messageContainer.parentNode.removeChild(messageContainer); + } + }, 1500); +} \ No newline at end of file diff --git a/static/nah.png b/static/nah.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5de296a5716650d75897393f7ca30f279ad583 GIT binary patch literal 36499 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 literal 0 HcmV?d00001 diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..7e5f660 --- /dev/null +++ b/static/style.css @@ -0,0 +1,57 @@ +/* woekwewe */ +html { background:#595656; color: white;} +textarea { resize: none; border: 1px Solid;} +h1 { display: inline; margin: 0; padding: 0;} +.container { width: 60%; margin: auto; } +.nav { padding-left: 0px !important; padding:5px; } +.overlay::after {position: fixed; top: 10%; left: 10%; font-size: 24px; color: white; content: "Click away to exit...";} +.overlay { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: rgba(0, 0, 0, 0.85); + z-index: 9999; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + padding: 20px; + box-sizing: border-box; +} +.mod { + color: rgb(182, 0, 0); +} + +img:hover { + cursor: pointer; +} + +a { + color:blueviolet; +} + +textarea[disabled] { + background: darkgrey; +} +.replies { + margin: 2em; +} + +#notification { + font-size: 24px; +} + +.replies { + margin-left: 10px; +} + + +th { + text-align: left; +} + +a { + color: rgb(161, 161, 161); +} \ No newline at end of file diff --git a/static/threads.js b/static/threads.js new file mode 100644 index 0000000..a92aeab --- /dev/null +++ b/static/threads.js @@ -0,0 +1,9 @@ +// threads.js +// by lua (zav@tbdpowered.net) + +function toggleContent(contentId, toggleElement) { + $("." + contentId).toggle(); + + var $toggle = $(toggleElement); + $toggle.text( ($toggle.text() == '[-]' ? '[+]' : '[-]') ); +} \ No newline at end of file diff --git a/static/yeah.png b/static/yeah.png new file mode 100644 index 0000000000000000000000000000000000000000..5c914af8c249be694199e6f544f0524380970273 GIT binary patch literal 40183 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 literal 0 HcmV?d00001 diff --git a/templates/header.html b/templates/header.html new file mode 100644 index 0000000..bdbcb37 --- /dev/null +++ b/templates/header.html @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/templates/main.html b/templates/main.html new file mode 100644 index 0000000..aaee686 --- /dev/null +++ b/templates/main.html @@ -0,0 +1,75 @@ + + + + + + /buddy/ + + + + + +
+ {% include 'header.html' %} +
+ + + + + + + + + + + + + + +
Name
Image
Content
+
+ +
+ {% for post in posts | reverse %} + {% if post.replying == "pin" %} +
+
+ [-] [Pinned] + {% if post.ip == "127.0.0.1" and post.user == "*" %}{{ mod }} [M]{% else %}{{ post.user }}{% endif %} • + {{post.yeahs}} Reply +
+
+ {% if post.image %} + Embedded image from {{ post.image }} + {% endif %} +

{{ post.content | replace('\n', '
') | safe }}

+
+
+ {% endif %} + {% endfor %} + {% for post in posts | reverse %} + {% if post.replying == None %} +
+
+ [-] + {% if post.ip == "127.0.0.1" and post.user == "*" %}{{ mod }} [M]{% else %}{{ post.user }}{% endif %} • + {{post.yeahs}} Reply +
+
+ {% if post.image %} + Embedded image from {{ post.image }} + {% endif %} +

{{ post.content | replace('\n', '
') | safe }}

+
+
+ {% endif %} + {% else %} +

No messages yet. Be the first to post!

+ {% endfor %} +
+
+ This service is ran on buddyboard • source code +
+ + + \ No newline at end of file diff --git a/templates/reply.html b/templates/reply.html new file mode 100644 index 0000000..182c308 --- /dev/null +++ b/templates/reply.html @@ -0,0 +1,76 @@ + + + + + + /buddy/ + + + + + +
+ {% include 'header.html' %} +
+ + + + + + + + + + + + + + + +
Name
Image
Content
+
+ +
+
+
+ [-] + {% if post.ip == "127.0.0.1" and post.user == "*" %}{{ mod }} [M]{% else %}{{ post.user }}{% endif %} • + {{post.yeahs}} Reply +
+
+ {% if post.image %} + Embedded image from {{ post.image }} + {% endif %} +

{{ post.content | replace('\n', '
') | safe }}

+
+
+ [-] {{ replies|count - 1}} replies... +
+ {% for p in replies | reverse %} + {% if p.replying == post.id %} +
+
+ [-] + {{p.user}} • + {{p.yeahs}} Reply +
+
+ {% if p.image %} + Embedded image from {{ p.image }} + {% endif %} +

{{ p.content | replace('\n', '
') | safe }}

+
+
+ {% endif %} + {% else %} +

No messages yet. Be the first to post!

+ {% endfor %} +
+ +
+
+ This service is ran on buddyboard • source code +
+ + + \ No newline at end of file