diff --git a/app.db b/app.db index ca2cebc..b404e8f 100644 Binary files a/app.db and b/app.db differ diff --git a/app.py b/app.py index 64ae166..98d357f 100644 --- a/app.py +++ b/app.py @@ -6,7 +6,5 @@ from backend import routine if __name__ == "__main__": context = ('certificate/xip.io.crt', 'certificate/xip.io.key')#certificate and key files - app.run('0.0.0.0', 1234, ssl_context=context, debug=True) - - - +# app.run('0.0.0.0', 8084, ssl_context='adhoc', debug=True) + app.run(host='0.0.0.0', port=8084) diff --git a/calendarwatch/bin/activate b/calendarwatch/bin/activate new file mode 100644 index 0000000..a08dcd6 --- /dev/null +++ b/calendarwatch/bin/activate @@ -0,0 +1,84 @@ +# This file must be used with "source bin/activate" *from bash* +# you cannot run it directly + + +if [ "${BASH_SOURCE-}" = "$0" ]; then + echo "You must source this script: \$ source $0" >&2 + exit 33 +fi + +deactivate () { + unset -f pydoc >/dev/null 2>&1 + + # reset old environment variables + # ! [ -z ${VAR+_} ] returns true if VAR is declared at all + if ! [ -z "${_OLD_VIRTUAL_PATH:+_}" ] ; then + PATH="$_OLD_VIRTUAL_PATH" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if ! [ -z "${_OLD_VIRTUAL_PYTHONHOME+_}" ] ; then + PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # This should detect bash and zsh, which have a hash command that must + # be called to get it to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then + hash -r 2>/dev/null + fi + + if ! [ -z "${_OLD_VIRTUAL_PS1+_}" ] ; then + PS1="$_OLD_VIRTUAL_PS1" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + if [ ! "${1-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV='/home/raphael/dev/git/calendarwatch_frontend/calendarwatch' +export VIRTUAL_ENV + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/bin:$PATH" +export PATH + +# unset PYTHONHOME if set +if ! [ -z "${PYTHONHOME+_}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1-}" + if [ "x" != x ] ; then + PS1="${PS1-}" + else + PS1="(`basename \"$VIRTUAL_ENV\"`) ${PS1-}" + fi + export PS1 +fi + +# Make sure to unalias pydoc if it's already there +alias pydoc 2>/dev/null >/dev/null && unalias pydoc || true + +pydoc () { + python -m pydoc "$@" +} + +# This should detect bash and zsh, which have a hash command that must +# be called to get it to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +if [ -n "${BASH-}" ] || [ -n "${ZSH_VERSION-}" ] ; then + hash -r 2>/dev/null +fi diff --git a/calendarwatch/bin/activate.csh b/calendarwatch/bin/activate.csh new file mode 100644 index 0000000..e4f7932 --- /dev/null +++ b/calendarwatch/bin/activate.csh @@ -0,0 +1,55 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. +# Created by Davide Di Blasi . + +set newline='\ +' + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH:q" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT:q" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate && unalias pydoc' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV '/home/raphael/dev/git/calendarwatch_frontend/calendarwatch' + +set _OLD_VIRTUAL_PATH="$PATH:q" +setenv PATH "$VIRTUAL_ENV:q/bin:$PATH:q" + + + +if ('' != "") then + set env_name = '' +else + set env_name = '('"$VIRTUAL_ENV:t:q"') ' +endif + +if ( $?VIRTUAL_ENV_DISABLE_PROMPT ) then + if ( $VIRTUAL_ENV_DISABLE_PROMPT == "" ) then + set do_prompt = "1" + else + set do_prompt = "0" + endif +else + set do_prompt = "1" +endif + +if ( $do_prompt == "1" ) then + # Could be in a non-interactive environment, + # in which case, $prompt is undefined and we wouldn't + # care about the prompt anyway. + if ( $?prompt ) then + set _OLD_VIRTUAL_PROMPT="$prompt:q" + if ( "$prompt:q" =~ *"$newline:q"* ) then + : + else + set prompt = "$env_name:q$prompt:q" + endif + endif +endif + +unset env_name +unset do_prompt + +alias pydoc python -m pydoc + +rehash diff --git a/calendarwatch/bin/activate.fish b/calendarwatch/bin/activate.fish new file mode 100644 index 0000000..8d960e0 --- /dev/null +++ b/calendarwatch/bin/activate.fish @@ -0,0 +1,100 @@ +# This file must be used using `source bin/activate.fish` *within a running fish ( http://fishshell.com ) session*. +# Do not run it directly. + +function _bashify_path -d "Converts a fish path to something bash can recognize" + set fishy_path $argv + set bashy_path $fishy_path[1] + for path_part in $fishy_path[2..-1] + set bashy_path "$bashy_path:$path_part" + end + echo $bashy_path +end + +function _fishify_path -d "Converts a bash path to something fish can recognize" + echo $argv | tr ':' '\n' +end + +function deactivate -d 'Exit virtualenv mode and return to the normal environment.' + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + # https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling + if test (echo $FISH_VERSION | head -c 1) -lt 3 + set -gx PATH (_fishify_path "$_OLD_VIRTUAL_PATH") + else + set -gx PATH "$_OLD_VIRTUAL_PATH" + end + set -e _OLD_VIRTUAL_PATH + end + + if test -n "$_OLD_VIRTUAL_PYTHONHOME" + set -gx PYTHONHOME "$_OLD_VIRTUAL_PYTHONHOME" + set -e _OLD_VIRTUAL_PYTHONHOME + end + + if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + and functions -q _old_fish_prompt + # Set an empty local `$fish_function_path` to allow the removal of `fish_prompt` using `functions -e`. + set -l fish_function_path + + # Erase virtualenv's `fish_prompt` and restore the original. + functions -e fish_prompt + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + set -e _OLD_FISH_PROMPT_OVERRIDE + end + + set -e VIRTUAL_ENV + + if test "$argv[1]" != 'nondestructive' + # Self-destruct! + functions -e pydoc + functions -e deactivate + functions -e _bashify_path + functions -e _fishify_path + end +end + +# Unset irrelevant variables. +deactivate nondestructive + +set -gx VIRTUAL_ENV '/home/raphael/dev/git/calendarwatch_frontend/calendarwatch' + +# https://github.com/fish-shell/fish-shell/issues/436 altered PATH handling +if test (echo $FISH_VERSION | head -c 1) -lt 3 + set -gx _OLD_VIRTUAL_PATH (_bashify_path $PATH) +else + set -gx _OLD_VIRTUAL_PATH "$PATH" +end +set -gx PATH "$VIRTUAL_ENV"'/bin' $PATH + +# Unset `$PYTHONHOME` if set. +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +function pydoc + python -m pydoc $argv +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # Copy the current `fish_prompt` function as `_old_fish_prompt`. + functions -c fish_prompt _old_fish_prompt + + function fish_prompt + # Run the user's prompt first; it might depend on (pipe)status. + set -l prompt (_old_fish_prompt) + + # Prompt override provided? + # If not, just prepend the environment name. + if test -n '' + printf '%s%s' '' (set_color normal) + else + printf '%s(%s) ' (set_color normal) (basename "$VIRTUAL_ENV") + end + + string join -- \n $prompt # handle multi-line prompts + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" +end diff --git a/calendarwatch/bin/activate.ps1 b/calendarwatch/bin/activate.ps1 new file mode 100644 index 0000000..95504d3 --- /dev/null +++ b/calendarwatch/bin/activate.ps1 @@ -0,0 +1,60 @@ +$script:THIS_PATH = $myinvocation.mycommand.path +$script:BASE_DIR = Split-Path (Resolve-Path "$THIS_PATH/..") -Parent + +function global:deactivate([switch] $NonDestructive) { + if (Test-Path variable:_OLD_VIRTUAL_PATH) { + $env:PATH = $variable:_OLD_VIRTUAL_PATH + Remove-Variable "_OLD_VIRTUAL_PATH" -Scope global + } + + if (Test-Path function:_old_virtual_prompt) { + $function:prompt = $function:_old_virtual_prompt + Remove-Item function:\_old_virtual_prompt + } + + if ($env:VIRTUAL_ENV) { + Remove-Item env:VIRTUAL_ENV -ErrorAction SilentlyContinue + } + + if (!$NonDestructive) { + # Self destruct! + Remove-Item function:deactivate + Remove-Item function:pydoc + } +} + +function global:pydoc { + python -m pydoc $args +} + +# unset irrelevant variables +deactivate -nondestructive + +$VIRTUAL_ENV = $BASE_DIR +$env:VIRTUAL_ENV = $VIRTUAL_ENV + +New-Variable -Scope global -Name _OLD_VIRTUAL_PATH -Value $env:PATH + +$env:PATH = "$env:VIRTUAL_ENV/bin:" + $env:PATH +if (!$env:VIRTUAL_ENV_DISABLE_PROMPT) { + function global:_old_virtual_prompt { + "" + } + $function:_old_virtual_prompt = $function:prompt + + if ("" -ne "") { + function global:prompt { + # Add the custom prefix to the existing prompt + $previous_prompt_value = & $function:_old_virtual_prompt + ("" + $previous_prompt_value) + } + } + else { + function global:prompt { + # Add a prefix to the current prompt, but don't discard it. + $previous_prompt_value = & $function:_old_virtual_prompt + $new_prompt_value = "($( Split-Path $env:VIRTUAL_ENV -Leaf )) " + ($new_prompt_value + $previous_prompt_value) + } + } +} diff --git a/calendarwatch/bin/activate.xsh b/calendarwatch/bin/activate.xsh new file mode 100644 index 0000000..cdd74cb --- /dev/null +++ b/calendarwatch/bin/activate.xsh @@ -0,0 +1,46 @@ +"""Xonsh activate script for virtualenv""" +from xonsh.tools import get_sep as _get_sep + +def _deactivate(args): + if "pydoc" in aliases: + del aliases["pydoc"] + + if ${...}.get("_OLD_VIRTUAL_PATH", ""): + $PATH = $_OLD_VIRTUAL_PATH + del $_OLD_VIRTUAL_PATH + + if ${...}.get("_OLD_VIRTUAL_PYTHONHOME", ""): + $PYTHONHOME = $_OLD_VIRTUAL_PYTHONHOME + del $_OLD_VIRTUAL_PYTHONHOME + + if "VIRTUAL_ENV" in ${...}: + del $VIRTUAL_ENV + + if "VIRTUAL_ENV_PROMPT" in ${...}: + del $VIRTUAL_ENV_PROMPT + + if "nondestructive" not in args: + # Self destruct! + del aliases["deactivate"] + + +# unset irrelevant variables +_deactivate(["nondestructive"]) +aliases["deactivate"] = _deactivate + +$VIRTUAL_ENV = r"/home/raphael/dev/git/calendarwatch_frontend/calendarwatch" + +$_OLD_VIRTUAL_PATH = $PATH +$PATH = $PATH[:] +$PATH.add($VIRTUAL_ENV + _get_sep() + "bin", front=True, replace=True) + +if ${...}.get("PYTHONHOME", ""): + # unset PYTHONHOME if set + $_OLD_VIRTUAL_PYTHONHOME = $PYTHONHOME + del $PYTHONHOME + +$VIRTUAL_ENV_PROMPT = "" +if not $VIRTUAL_ENV_PROMPT: + del $VIRTUAL_ENV_PROMPT + +aliases["pydoc"] = ["python", "-m", "pydoc"] diff --git a/calendarwatch/bin/activate_this.py b/calendarwatch/bin/activate_this.py new file mode 100644 index 0000000..c343685 --- /dev/null +++ b/calendarwatch/bin/activate_this.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +"""Activate virtualenv for current interpreter: + +Use exec(open(this_file).read(), {'__file__': this_file}). + +This can be used when you must use an existing Python interpreter, not the virtualenv bin/python. +""" +import os +import site +import sys + +try: + abs_file = os.path.abspath(__file__) +except NameError: + raise AssertionError("You must use exec(open(this_file).read(), {'__file__': this_file}))") + +bin_dir = os.path.dirname(abs_file) +base = bin_dir[: -len("bin") - 1] # strip away the bin part from the __file__, plus the path separator + +# prepend bin to PATH (this file is inside the bin directory) +os.environ["PATH"] = os.pathsep.join([bin_dir] + os.environ.get("PATH", "").split(os.pathsep)) +os.environ["VIRTUAL_ENV"] = base # virtual env is right above bin directory + +# add the virtual environments libraries to the host python import mechanism +prev_length = len(sys.path) +for lib in "../lib/python3.7/site-packages".split(os.pathsep): + path = os.path.realpath(os.path.join(bin_dir, lib)) + site.addsitedir(path.decode("utf-8") if "" else path) +sys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length] + +sys.real_prefix = sys.prefix +sys.prefix = base diff --git a/calendarwatch/bin/alembic b/calendarwatch/bin/alembic new file mode 100755 index 0000000..2d1eeb5 --- /dev/null +++ b/calendarwatch/bin/alembic @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from alembic.config import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/chardetect b/calendarwatch/bin/chardetect new file mode 100755 index 0000000..bbd2989 --- /dev/null +++ b/calendarwatch/bin/chardetect @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from chardet.cli.chardetect import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/dotenv b/calendarwatch/bin/dotenv new file mode 100755 index 0000000..1f70c34 --- /dev/null +++ b/calendarwatch/bin/dotenv @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from dotenv.cli import cli +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(cli()) diff --git a/calendarwatch/bin/easy_install b/calendarwatch/bin/easy_install new file mode 100755 index 0000000..ffb7980 --- /dev/null +++ b/calendarwatch/bin/easy_install @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from setuptools.command.easy_install import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/easy_install-3.7 b/calendarwatch/bin/easy_install-3.7 new file mode 100755 index 0000000..ffb7980 --- /dev/null +++ b/calendarwatch/bin/easy_install-3.7 @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from setuptools.command.easy_install import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/easy_install3 b/calendarwatch/bin/easy_install3 new file mode 100755 index 0000000..ffb7980 --- /dev/null +++ b/calendarwatch/bin/easy_install3 @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from setuptools.command.easy_install import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/email_validator b/calendarwatch/bin/email_validator new file mode 100755 index 0000000..b9cd714 --- /dev/null +++ b/calendarwatch/bin/email_validator @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from email_validator import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/flask b/calendarwatch/bin/flask new file mode 100755 index 0000000..7517604 --- /dev/null +++ b/calendarwatch/bin/flask @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from flask.cli import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/google b/calendarwatch/bin/google new file mode 100755 index 0000000..4a61d0e --- /dev/null +++ b/calendarwatch/bin/google @@ -0,0 +1,137 @@ +#!/usr/bin/python + +# Python bindings to the Google search engine +# Copyright (c) 2009-2019, Mario Vilas +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice,this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +import sys + +from googlesearch import search, get_random_user_agent + +# TODO port to argparse +from optparse import OptionParser, IndentedHelpFormatter + + +class BannerHelpFormatter(IndentedHelpFormatter): + + "Just a small tweak to optparse to be able to print a banner." + + def __init__(self, banner, *argv, **argd): + self.banner = banner + IndentedHelpFormatter.__init__(self, *argv, **argd) + + def format_usage(self, usage): + msg = IndentedHelpFormatter.format_usage(self, usage) + return '%s\n%s' % (self.banner, msg) + + +def main(): + + # Parse the command line arguments. + formatter = BannerHelpFormatter( + "Python script to use the Google search engine\n" + "By Mario Vilas (mvilas at gmail dot com)\n" + "https://github.com/MarioVilas/googlesearch\n" + ) + parser = OptionParser(formatter=formatter) + parser.set_usage("%prog [options] query") + parser.add_option( + '--tld', metavar='TLD', type='string', default='com', + help="top level domain to use [default: com]") + parser.add_option( + '--lang', metavar='LANGUAGE', type='string', default='en', + help="produce results in the given language [default: en]") + parser.add_option( + '--domains', metavar='DOMAINS', type='string', default='', + help="comma separated list of domains to constrain the search to") + parser.add_option( + '--tbs', metavar='TBS', type='string', default='0', + help="produce results from period [default: 0]") + parser.add_option( + '--safe', metavar='SAFE', type='string', default='off', + help="kids safe search [default: off]") + parser.add_option( + '--type', metavar='TYPE', type='string', default='search', dest='tpe', + help="search type (search, images, videos, news, shopping, books," + " apps) [default: search]") + parser.add_option( + '--country', metavar='COUNTRY', type='string', default='', + help="region to restrict search on [default: not restricted]") + parser.add_option( + '--num', metavar='NUMBER', type='int', default=10, + help="number of results per page [default: 10]") + parser.add_option( + '--start', metavar='NUMBER', type='int', default=0, + help="first result to retrieve [default: 0]") + parser.add_option( + '--stop', metavar='NUMBER', type='int', default=0, + help="last result to retrieve [default: unlimited]") + parser.add_option( + '--pause', metavar='SECONDS', type='float', default=2.0, + help="pause between HTTP requests [default: 2.0]") + parser.add_option( + '--rua', metavar='USERAGENT', action='store_true', default=False, + help="Randomize the User-Agent [default: no]") + (options, args) = parser.parse_args() + query = ' '.join(args) + if not query: + parser.print_help() + sys.exit(2) + params = [ + (k, v) for (k, v) in options.__dict__.items() + if not k.startswith('_')] + params = dict(params) + + # Split the comma separated list of domains, if present. + if 'domains' in params: + params['domains'] = [x.strip() for x in params['domains'].split(',')] + + # Use a special search type if requested. + if 'tpe' in params: + tpe = params['tpe'] + if tpe and tpe not in ( + 'search', 'images', 'videos', 'news', + 'shopping', 'books', 'apps'): + parser.error("invalid type: %r" % tpe) + if tpe == 'search': + params['tpe'] = '' + + # Randomize the user agent if requested. + if 'rua' in params and params.pop('rua'): + params['user_agent'] = get_random_user_agent() + + # Run the query. + for url in search(query, **params): + print(url) + try: + sys.stdout.flush() + except Exception: + pass + + +if __name__ == '__main__': + main() diff --git a/calendarwatch/bin/google-oauthlib-tool b/calendarwatch/bin/google-oauthlib-tool new file mode 100755 index 0000000..9362036 --- /dev/null +++ b/calendarwatch/bin/google-oauthlib-tool @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from google_auth_oauthlib.tool.__main__ import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/mako-render b/calendarwatch/bin/mako-render new file mode 100755 index 0000000..14a903c --- /dev/null +++ b/calendarwatch/bin/mako-render @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from mako.cmd import cmdline +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(cmdline()) diff --git a/calendarwatch/bin/pip b/calendarwatch/bin/pip new file mode 100755 index 0000000..b0cf59f --- /dev/null +++ b/calendarwatch/bin/pip @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/pip-3.7 b/calendarwatch/bin/pip-3.7 new file mode 100755 index 0000000..b0cf59f --- /dev/null +++ b/calendarwatch/bin/pip-3.7 @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/pip3 b/calendarwatch/bin/pip3 new file mode 100755 index 0000000..b0cf59f --- /dev/null +++ b/calendarwatch/bin/pip3 @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/pip3.7 b/calendarwatch/bin/pip3.7 new file mode 100755 index 0000000..b0cf59f --- /dev/null +++ b/calendarwatch/bin/pip3.7 @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/pyrsa-decrypt b/calendarwatch/bin/pyrsa-decrypt new file mode 100755 index 0000000..a8b65be --- /dev/null +++ b/calendarwatch/bin/pyrsa-decrypt @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from rsa.cli import decrypt +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(decrypt()) diff --git a/calendarwatch/bin/pyrsa-encrypt b/calendarwatch/bin/pyrsa-encrypt new file mode 100755 index 0000000..0bcff21 --- /dev/null +++ b/calendarwatch/bin/pyrsa-encrypt @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from rsa.cli import encrypt +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(encrypt()) diff --git a/calendarwatch/bin/pyrsa-keygen b/calendarwatch/bin/pyrsa-keygen new file mode 100755 index 0000000..a6e9a88 --- /dev/null +++ b/calendarwatch/bin/pyrsa-keygen @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from rsa.cli import keygen +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(keygen()) diff --git a/calendarwatch/bin/pyrsa-priv2pub b/calendarwatch/bin/pyrsa-priv2pub new file mode 100755 index 0000000..6075f20 --- /dev/null +++ b/calendarwatch/bin/pyrsa-priv2pub @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from rsa.util import private_to_public +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(private_to_public()) diff --git a/calendarwatch/bin/pyrsa-sign b/calendarwatch/bin/pyrsa-sign new file mode 100755 index 0000000..845d00a --- /dev/null +++ b/calendarwatch/bin/pyrsa-sign @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from rsa.cli import sign +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(sign()) diff --git a/calendarwatch/bin/pyrsa-verify b/calendarwatch/bin/pyrsa-verify new file mode 100755 index 0000000..6a0d480 --- /dev/null +++ b/calendarwatch/bin/pyrsa-verify @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from rsa.cli import verify +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(verify()) diff --git a/calendarwatch/bin/python b/calendarwatch/bin/python new file mode 120000 index 0000000..ae65fda --- /dev/null +++ b/calendarwatch/bin/python @@ -0,0 +1 @@ +/usr/bin/python3 \ No newline at end of file diff --git a/calendarwatch/bin/python3 b/calendarwatch/bin/python3 new file mode 120000 index 0000000..d8654aa --- /dev/null +++ b/calendarwatch/bin/python3 @@ -0,0 +1 @@ +python \ No newline at end of file diff --git a/calendarwatch/bin/python3.7 b/calendarwatch/bin/python3.7 new file mode 120000 index 0000000..d8654aa --- /dev/null +++ b/calendarwatch/bin/python3.7 @@ -0,0 +1 @@ +python \ No newline at end of file diff --git a/calendarwatch/bin/uwsgi b/calendarwatch/bin/uwsgi new file mode 100755 index 0000000..163082a Binary files /dev/null and b/calendarwatch/bin/uwsgi differ diff --git a/calendarwatch/bin/wheel b/calendarwatch/bin/wheel new file mode 100755 index 0000000..36377b8 --- /dev/null +++ b/calendarwatch/bin/wheel @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from wheel.cli import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/wheel-3.7 b/calendarwatch/bin/wheel-3.7 new file mode 100755 index 0000000..36377b8 --- /dev/null +++ b/calendarwatch/bin/wheel-3.7 @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from wheel.cli import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/bin/wheel3 b/calendarwatch/bin/wheel3 new file mode 100755 index 0000000..36377b8 --- /dev/null +++ b/calendarwatch/bin/wheel3 @@ -0,0 +1,8 @@ +#!/home/raphael/dev/git/calendarwatch_frontend/calendarwatch/bin/python +# -*- coding: utf-8 -*- +import re +import sys +from wheel.cli import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/calendarwatch/pyvenv.cfg b/calendarwatch/pyvenv.cfg new file mode 100644 index 0000000..7f6b09c --- /dev/null +++ b/calendarwatch/pyvenv.cfg @@ -0,0 +1,8 @@ +home = /usr +implementation = CPython +version_info = 3.7.3.final.0 +virtualenv = 20.0.20 +include-system-site-packages = false +base-prefix = /usr +base-exec-prefix = /usr +base-executable = /usr/bin/python3 diff --git a/docker/calendarwatch/.Dockerfile.swp b/docker/calendarwatch/.Dockerfile.swp new file mode 100644 index 0000000..ce0c59c Binary files /dev/null and b/docker/calendarwatch/.Dockerfile.swp differ diff --git a/docker/calendarwatch/Dockerfile b/docker/calendarwatch/Dockerfile new file mode 100644 index 0000000..61b2119 --- /dev/null +++ b/docker/calendarwatch/Dockerfile @@ -0,0 +1,10 @@ +FROM python:3.8-slim-buster +RUN apt-get update && apt-get upgrade +RUN pip3 install flask Flask-SQLAlchemy flask_migrate flask_login flask_wtf python-dotenv +RUN apt-get install gcc libpcre3 libpcre3-dev -y +RUN pip3 install uwsgi +RUN pip3 install email-validator +RUN pip3 install google google-oauth google-auth-oauthlib google-api-python-client +COPY docker-entrypoint.sh /usr/local/bin/ +EXPOSE 8084 +ENTRYPOINT ["docker-entrypoint.sh"] diff --git a/docker/calendarwatch/docker-entrypoint.sh b/docker/calendarwatch/docker-entrypoint.sh new file mode 100755 index 0000000..3174ece --- /dev/null +++ b/docker/calendarwatch/docker-entrypoint.sh @@ -0,0 +1,4 @@ +#!/bin/sh +cd /home/calendarwatch +uwsgi --http-socket :8084 --wsgi-file server.py +# python3 app.py diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml new file mode 100644 index 0000000..c618c80 --- /dev/null +++ b/docker/docker-compose.yaml @@ -0,0 +1,11 @@ +version: '3' +services: + calendarwatch: + build: + context: ./calendarwatch + image: calendarwatch:latest + container_name: calendarwatch + volumes: + - ../:/home/calendarwatch + ports: + - "0.0.0.0:8084:8084" diff --git a/server/routes.py b/server/routes.py index defb040..fe354b0 100644 --- a/server/routes.py +++ b/server/routes.py @@ -22,6 +22,8 @@ from server import login_manager, app, db from server.forms import LoginForm, RegistrationForm from server.models import User, Calendar +os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1' + @app.route("/") def account(): return flask.redirect('account') diff --git a/wsgi.py b/wsgi.py new file mode 100644 index 0000000..d4ca0fa --- /dev/null +++ b/wsgi.py @@ -0,0 +1,4 @@ +from server import app as application + +if __name__ == "__main__": + application.run()