commit b026d00bd93ccef5a4b8e8bcf54e5cd58fb3ade4 Author: bacalhau Date: Sat Feb 28 11:38:48 2026 +0000 added files after removing them 5 times on accident diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1269488 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +data diff --git a/README.md b/README.md new file mode 100644 index 0000000..b18d445 --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# shitty darknet website +cool website with python, flask, mariadb and monero. + +## description +We make a darknet dating website based darknet users (such as myself). Each user can provide their own web page and must pay to join. a list of users will be displayed on the main page. Website will not use javashit. + +## goals: +Website must contain these features when finished + - create accounts + - delete accounts + - monero payments + - search page + +## Database +### USER + - id (PK) + - username + - first name + - last name + - adress + - pgp + - xmpp + - email (optional) + - phone number (optional) + - likes + - dislikes + - sex diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..dd21f30 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3.9" + +services: + db: + image: postgres + container_name: lovedb + restart: always + environment: + POSTGRES_USER: love + POSTGRES_PASSWORD: love + POSTGRES_DB: lovedb + ports: + - "5432:5432" + volumes: + - ./data:/var/lib/postgresql diff --git a/src/main.py b/src/main.py new file mode 100644 index 0000000..b7b3e6a --- /dev/null +++ b/src/main.py @@ -0,0 +1,52 @@ +from flask import Flask, render_template +from flask_sqlalchemy import SQLAlchemy +from sqlalchemy import Enum +from sqlalchemy.dialects.postgresql import ARRAY + +app = Flask(__name__) + +app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://love:love@localhost/lovedb' +app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False + +db = SQLAlchemy(app) + +class SexEnum: + male = "male" + female = "female" + +class User(db.Model): + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False) + pgp = db.Column(db.String(4096), unique=True, nullable=False) + + firstname = db.Column(db.String(80), unique=False, nullable=False) + lastname = db.Column(db.String(80), unique=False, nullable=False) + sex = db.Column(Enum('male', 'female', name="sex_enum"), nullable=False) + date_of_birth = db.Column(db.Date, nullable=False) + profile_picture = db.Column(db.String(200), nullable=False) + pictures = db.Column(ARRAY(db.String), nullable=True) + country = db.Column(db.String(80), unique=False, nullable=False) + city = db.Column(db.String(80), unique=False, nullable=True) + + height = db.Column(db.Float, nullable=True) + weight = db.Column(db.Integer, nullable=True) + race = db.Column(db.String(20), unique=False, nullable=True) + + prefered_age_range = db.Column(db.String(20), nullable=True) + likes = db.Column(ARRAY(db.String), nullable=True) + dislikes = db.Column(ARRAY(db.String), nullable=True) + + xmpp = db.Column(db.String(80), unique=True, nullable=False) + email = db.Column(db.String(80), unique=True, nullable=True) + phone = db.Column(db.String(20), unique=True, nullable=True) + + is_verified = db.Column(db.Boolean, default=False) + +@app.route("/") +def home(): + return render_template("index.html") + +if __name__ == "__main__": + with app.app_context(): + db.create_all() + app.run(debug=True) diff --git a/src/static/style.css b/src/static/style.css new file mode 100644 index 0000000..e8304dc --- /dev/null +++ b/src/static/style.css @@ -0,0 +1,86 @@ +@font-face { + font-family: 'font'; + src: url('/font/font.ttf') format('truetype'); + font-weight: normal; + font-style: normal; + font-display: swap; +} +@font-face { + font-family: 'font'; + src: url('/font/font-Bold.ttf') format('truetype'); + font-weight: bold; + font-style: normal; + font-display: swap; +} + +body { + background: #111011; + color: #e0e0e0; + text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.8); + max-width: 800px; + margin: auto; + font-family: font; + font-weight: normal; + line-height: 1.2rem; + word-wrap: break-word; +} + +footer { + padding: 0 0 1.5rem 0; + text-align: center; + margin-top: auto; +} + +main { +} + +img { + max-width: 100%; +} + +strong, b { + font-weight: bold; +} + + +h1 { + color: #ffffff; + text-decoration: underline #FF00FF; + text-align: center; +} + +h2 { + text-align: center; + color: #ff00ff; +} + +h3 { + color: #ff00ff; +} + +a { + color: #0000ff; +} + +a:hover { + color: #ffffff; +} + +summary { + color: #ff00ff; + background: #111011; +} + +details { + background: #222; +} + +summary:hover { + color: #fff; + cursor: pointer; +} + +.service { + padding: 0.5rem; + border: solid thin #ffff00; +} diff --git a/src/templates/index.html b/src/templates/index.html new file mode 100644 index 0000000..b58edaf --- /dev/null +++ b/src/templates/index.html @@ -0,0 +1,13 @@ + + + + onions + + +

onions

find the onion of your life!

+ + +

Welcome!

+

WIP

+ +