From 8ffc6cd45f8d8471b636c8ed1f189cf074d4d1cc Mon Sep 17 00:00:00 2001 From: Aravinth Manivannan Date: Wed, 3 Jan 2024 01:02:56 +0530 Subject: [PATCH] fet: init --- .env_sample | 3 + .gitignore | 133 ++++++++++++++++++++++++++++++++++++++ .nvmrc | 1 + .woodpecker.yml | 47 ++++++++++++++ scripts/create_captcha.py | 115 ++++++++++++++++++++++++++++++++ scripts/download-cli.sh | 35 ++++++++++ 6 files changed, 334 insertions(+) create mode 100644 .env_sample create mode 100644 .gitignore create mode 100644 .nvmrc create mode 100644 .woodpecker.yml create mode 100644 scripts/create_captcha.py create mode 100755 scripts/download-cli.sh diff --git a/.env_sample b/.env_sample new file mode 100644 index 0000000..62108cb --- /dev/null +++ b/.env_sample @@ -0,0 +1,3 @@ +export USERNAME= +export PASSWORD= +export INSTANCE_URL= diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..773085b --- /dev/null +++ b/.gitignore @@ -0,0 +1,133 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* +.env +.env.local +tmp/ diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..d5a1596 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20.10.0 diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..b8699fa --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,47 @@ +steps: + postgres: + image: postgres + detach: true + environment: + - POSTGRES_PASSWORD=password + + cache: + image: mcaptcha/cache:latest + detach: true + + mcaptcha: + image: mcaptcha/mcaptcha:latest + detach: true + environment: + - DATABASE_URL=postgres://postgres:password@postgres:5432/postgres # set password at placeholder + - RUST_LOG=debug + - PORT=7000 + - MCAPTCHA_server_IP=0.0.0.0 + - MCAPTCHA_server_DOMAIN=mcaptcha + - MCAPTCHA_server_COOKIE_SECRET=4d08c163c0b9780e7462893fd8aed5102c2c509f + - MCAPTCHA_captcha_SALT=4d08c163c0b9780e7462893fd8aed5102c2c509f + - MCAPTCHA_redis_URL=redis://cache/ + - MCAPTCHA_redis_POOL=4 + - MCAPTCHA_allow_demo=true + + test_setup: + image: python + environment: + - USERNAME=aaronsw + - PASSWORD=password + - INSTANCE_URL=http://mcaptcha:7000 + commands: + - pip install virtualenv && virtualenv venv + - make env + - make test.env + - mv .env.local .env_sample + + test: + image: node:20.10.0 + environment: + - USERNAME=aaronsw + - PASSWORD=password + - INSTANCE_URL=http://mcaptcha:7000 + commands: + - mv .env_sample .env.local + - make test diff --git a/scripts/create_captcha.py b/scripts/create_captcha.py new file mode 100644 index 0000000..66c06f8 --- /dev/null +++ b/scripts/create_captcha.py @@ -0,0 +1,115 @@ +# SPDX-FileCopyrightText: 2023 Aravinth Manivannan +# SPDX-FileCopyrightText: 2024 Aravinth Manivannan +# +# SPDX-License-Identifier: Apache-2.0 +# SPDX-License-Identifier: MIT + +import sys +from urllib.parse import urlparse, urlunparse, urlencode, parse_qsl +from requests import Session + + +def clean_url(url): + parsed = urlparse(url) + return urlunparse((parsed.scheme, parsed.netloc, "", "", "", "")) + + +def set_path(url: str, path: str) -> str: + parsed = urlparse(url) + return urlunparse((parsed.scheme, parsed.netloc, path, "", "", "")) + + +def help(): + print("Usage: create_captcha.py