Compare commits
5 Commits
a4265a44f5
...
999ae069da
Author | SHA1 | Date | |
---|---|---|---|
999ae069da | |||
2ecb5a4b71 | |||
5e7080695d | |||
ae773daad7 | |||
dbb6d170da |
6
app.py
6
app.py
@ -6,7 +6,5 @@ from backend import routine
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
context = ('certificate/xip.io.crt', 'certificate/xip.io.key')#certificate and key files
|
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, debug=True)
|
||||||
|
|
||||||
|
|
||||||
|
2
backend
2
backend
@ -1 +1 @@
|
|||||||
Subproject commit 8d546e37a890846313e62d1392a09956d109794a
|
Subproject commit b5dbfd87defaaed87c73f321ac3087fe5a7c689b
|
84
calendarwatch/bin/activate
Normal file
84
calendarwatch/bin/activate
Normal file
@ -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
|
55
calendarwatch/bin/activate.csh
Normal file
55
calendarwatch/bin/activate.csh
Normal file
@ -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 <davidedb@gmail.com>.
|
||||||
|
|
||||||
|
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
|
100
calendarwatch/bin/activate.fish
Normal file
100
calendarwatch/bin/activate.fish
Normal file
@ -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
|
60
calendarwatch/bin/activate.ps1
Normal file
60
calendarwatch/bin/activate.ps1
Normal file
@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
46
calendarwatch/bin/activate.xsh
Normal file
46
calendarwatch/bin/activate.xsh
Normal file
@ -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"]
|
32
calendarwatch/bin/activate_this.py
Normal file
32
calendarwatch/bin/activate_this.py
Normal file
@ -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
|
8
calendarwatch/bin/alembic
Executable file
8
calendarwatch/bin/alembic
Executable file
@ -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())
|
8
calendarwatch/bin/chardetect
Executable file
8
calendarwatch/bin/chardetect
Executable file
@ -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())
|
8
calendarwatch/bin/dotenv
Executable file
8
calendarwatch/bin/dotenv
Executable file
@ -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())
|
8
calendarwatch/bin/easy_install
Executable file
8
calendarwatch/bin/easy_install
Executable file
@ -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())
|
8
calendarwatch/bin/easy_install-3.7
Executable file
8
calendarwatch/bin/easy_install-3.7
Executable file
@ -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())
|
8
calendarwatch/bin/easy_install3
Executable file
8
calendarwatch/bin/easy_install3
Executable file
@ -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())
|
8
calendarwatch/bin/email_validator
Executable file
8
calendarwatch/bin/email_validator
Executable file
@ -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())
|
8
calendarwatch/bin/flask
Executable file
8
calendarwatch/bin/flask
Executable file
@ -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())
|
137
calendarwatch/bin/google
Executable file
137
calendarwatch/bin/google
Executable file
@ -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()
|
8
calendarwatch/bin/google-oauthlib-tool
Executable file
8
calendarwatch/bin/google-oauthlib-tool
Executable file
@ -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())
|
8
calendarwatch/bin/mako-render
Executable file
8
calendarwatch/bin/mako-render
Executable file
@ -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())
|
8
calendarwatch/bin/pip
Executable file
8
calendarwatch/bin/pip
Executable file
@ -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())
|
8
calendarwatch/bin/pip-3.7
Executable file
8
calendarwatch/bin/pip-3.7
Executable file
@ -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())
|
8
calendarwatch/bin/pip3
Executable file
8
calendarwatch/bin/pip3
Executable file
@ -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())
|
8
calendarwatch/bin/pip3.7
Executable file
8
calendarwatch/bin/pip3.7
Executable file
@ -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())
|
8
calendarwatch/bin/pyrsa-decrypt
Executable file
8
calendarwatch/bin/pyrsa-decrypt
Executable file
@ -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())
|
8
calendarwatch/bin/pyrsa-encrypt
Executable file
8
calendarwatch/bin/pyrsa-encrypt
Executable file
@ -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())
|
8
calendarwatch/bin/pyrsa-keygen
Executable file
8
calendarwatch/bin/pyrsa-keygen
Executable file
@ -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())
|
8
calendarwatch/bin/pyrsa-priv2pub
Executable file
8
calendarwatch/bin/pyrsa-priv2pub
Executable file
@ -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())
|
8
calendarwatch/bin/pyrsa-sign
Executable file
8
calendarwatch/bin/pyrsa-sign
Executable file
@ -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())
|
8
calendarwatch/bin/pyrsa-verify
Executable file
8
calendarwatch/bin/pyrsa-verify
Executable file
@ -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())
|
1
calendarwatch/bin/python
Symbolic link
1
calendarwatch/bin/python
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
/usr/bin/python3
|
1
calendarwatch/bin/python3
Symbolic link
1
calendarwatch/bin/python3
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
python
|
1
calendarwatch/bin/python3.7
Symbolic link
1
calendarwatch/bin/python3.7
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
python
|
BIN
calendarwatch/bin/uwsgi
Executable file
BIN
calendarwatch/bin/uwsgi
Executable file
Binary file not shown.
8
calendarwatch/bin/wheel
Executable file
8
calendarwatch/bin/wheel
Executable file
@ -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())
|
8
calendarwatch/bin/wheel-3.7
Executable file
8
calendarwatch/bin/wheel-3.7
Executable file
@ -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())
|
8
calendarwatch/bin/wheel3
Executable file
8
calendarwatch/bin/wheel3
Executable file
@ -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())
|
8
calendarwatch/pyvenv.cfg
Normal file
8
calendarwatch/pyvenv.cfg
Normal file
@ -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
|
BIN
docker/calendarwatch/.Dockerfile.swp
Normal file
BIN
docker/calendarwatch/.Dockerfile.swp
Normal file
Binary file not shown.
10
docker/calendarwatch/Dockerfile
Normal file
10
docker/calendarwatch/Dockerfile
Normal file
@ -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"]
|
4
docker/calendarwatch/docker-entrypoint.sh
Executable file
4
docker/calendarwatch/docker-entrypoint.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd /home/calendarwatch
|
||||||
|
# uwsgi --http-socket 0.0.0.0:8084 -w wsgi --protocol=https
|
||||||
|
python3 app.py
|
11
docker/docker-compose.yaml
Normal file
11
docker/docker-compose.yaml
Normal file
@ -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"
|
@ -119,7 +119,6 @@ def getCalendarJson():
|
|||||||
# Load credentials from the session.
|
# Load credentials from the session.
|
||||||
credentials = google.oauth2.credentials.Credentials(
|
credentials = google.oauth2.credentials.Credentials(
|
||||||
**flask.session['credentials'])
|
**flask.session['credentials'])
|
||||||
todaysCal = caltojson.generateJsonFromCalendarEntries(credentials)
|
|
||||||
|
|
||||||
with open('./userinfo/' + current_user.id + '/calendarevents.json', 'w') as outfile:
|
with open('./userinfo/' + current_user.id + '/calendarevents.json', 'w') as outfile:
|
||||||
json.dump(todaysCal, outfile)
|
json.dump(todaysCal, outfile)
|
||||||
@ -132,19 +131,20 @@ def updateCalendars():
|
|||||||
return flask.redirect('login/google')
|
return flask.redirect('login/google')
|
||||||
|
|
||||||
# Load credentials from the session.
|
# Load credentials from the session.
|
||||||
credentials = google.oauth2.credentials.Credentials(
|
# credentials = google.oauth2.credentials.Credentials(
|
||||||
**flask.session['credentials'])
|
# **flask.session['credentials'])
|
||||||
|
# a = flask.session['credentials']
|
||||||
|
# print(a, flush=True)
|
||||||
|
# print(current_user.getGoogleCredentials(), flush=True)
|
||||||
|
|
||||||
|
credentials = google.oauth2.credentials.Credentials(**current_user.getGoogleCredentials())
|
||||||
calendars = caltojson.getCalendarList(credentials)
|
calendars = caltojson.getCalendarList(credentials)
|
||||||
|
|
||||||
for calendar in calendars:
|
for calendar in calendars:
|
||||||
|
|
||||||
if dbCalendar.getCalendar(dbCalendar, current_user.id, calendar.calendarId) == None:
|
if dbCalendar.getCalendar(dbCalendar, current_user.id, calendar.calendarId) == None:
|
||||||
dbCalendar.create(dbCalendar, current_user.id, calendar.calendarId, calendar.summary, calendar.color)
|
dbCalendar.create(dbCalendar, current_user.id, calendar.calendarId, calendar.summary, calendar.color)
|
||||||
|
|
||||||
print("updated Calendars")
|
print("updated Calendars")
|
||||||
|
|
||||||
# Save credentials back to session in case access token was refreshed.
|
# Save credentials back to session in case access token was refreshed.
|
||||||
# ACTION ITEM: In a production app, you likely want to save these
|
# ACTION ITEM: In a production app, you likely want to save these
|
||||||
# credentials in a persistent database instead.
|
# credentials in a persistent database instead.
|
||||||
|
@ -22,6 +22,8 @@ from server import login_manager, app, db
|
|||||||
from server.forms import LoginForm, RegistrationForm
|
from server.forms import LoginForm, RegistrationForm
|
||||||
from server.models import User, Calendar
|
from server.models import User, Calendar
|
||||||
|
|
||||||
|
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
|
||||||
|
|
||||||
@app.route("/")
|
@app.route("/")
|
||||||
def account():
|
def account():
|
||||||
return flask.redirect('account')
|
return flask.redirect('account')
|
||||||
@ -74,6 +76,14 @@ def register():
|
|||||||
return redirect(url_for('emaillogin'))
|
return redirect(url_for('emaillogin'))
|
||||||
return render_template('register.html', title='Register', form=form)
|
return render_template('register.html', title='Register', form=form)
|
||||||
|
|
||||||
|
@app.route("/test")
|
||||||
|
def testAPI():
|
||||||
|
if current_user.is_authenticated:
|
||||||
|
google.updateCalendars()
|
||||||
|
return redirect('/account')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@app.route("/login/google")
|
@app.route("/login/google")
|
||||||
def googlelogin():
|
def googlelogin():
|
||||||
authorization_url = google.login()
|
authorization_url = google.login()
|
||||||
@ -126,8 +136,8 @@ def credentials_to_dict(credentials):
|
|||||||
|
|
||||||
@app.route("/userinfo/<path:user>/calendarevents.json")
|
@app.route("/userinfo/<path:user>/calendarevents.json")
|
||||||
def downloader(user):
|
def downloader(user):
|
||||||
print(user)
|
path = "/home/calendarwatch/userinfo/" + user + "/"
|
||||||
path = "userinfo/" + user
|
print(path, flush=True)
|
||||||
return flask.send_from_directory(path, "calendarevents.json")
|
return flask.send_from_directory(path, "calendarevents.json")
|
||||||
|
|
||||||
# POST
|
# POST
|
||||||
|
Loading…
Reference in New Issue
Block a user