Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
mffzoom
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
wizards
mffzoom
Commits
7da8b663
Commit
7da8b663
authored
5 years ago
by
Martin Mareš
Browse files
Options
Downloads
Patches
Plain Diff
fetch-meetings --meeting without --user if possible
parent
0f00d2e8
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
hook/fetch-meetings.py
+25
-13
25 additions, 13 deletions
hook/fetch-meetings.py
with
25 additions
and
13 deletions
hook/fetch-meetings.py
+
25
−
13
View file @
7da8b663
...
@@ -20,6 +20,11 @@ db_conn = psycopg2.connect(dbname=config['db']['name'], user=config['db']['user'
...
@@ -20,6 +20,11 @@ db_conn = psycopg2.connect(dbname=config['db']['name'], user=config['db']['user'
db
=
db_conn
.
cursor
(
cursor_factory
=
psycopg2
.
extras
.
NamedTupleCursor
)
db
=
db_conn
.
cursor
(
cursor_factory
=
psycopg2
.
extras
.
NamedTupleCursor
)
def
die
(
msg
):
print
(
msg
,
file
=
sys
.
stderr
)
sys
.
exit
(
1
)
def
parse_time
(
iso_time
):
def
parse_time
(
iso_time
):
return
dateutil
.
parser
.
isoparse
(
iso_time
)
return
dateutil
.
parser
.
isoparse
(
iso_time
)
...
@@ -140,23 +145,32 @@ def fetch_all():
...
@@ -140,23 +145,32 @@ def fetch_all():
def
fetch_single
(
user_email
,
meeting_id
):
def
fetch_single
(
user_email
,
meeting_id
):
db
.
execute
(
"
SELECT * FROM zoom_users WHERE email=%s
"
,
(
user_email
,))
user_row
=
db
.
fetchone
()
if
user_row
is
None
:
print
(
f
"
E-mail
{
user_email
}
not found
"
,
file
=
sys
.
stderr
)
sys
.
exit
(
1
)
uid
=
user_row
.
uid
db
.
execute
(
"
SELECT * FROM zoom_meetings WHERE meeting_id=%s
"
,
(
meeting_id
,))
db
.
execute
(
"
SELECT * FROM zoom_meetings WHERE meeting_id=%s
"
,
(
meeting_id
,))
meeting_row
=
db
.
fetchone
()
meeting_row
=
db
.
fetchone
()
if
meeting_row
is
not
None
:
assert
meeting_row
.
host_uid
==
uid
,
"
Mismatched user ID
"
if
meeting_row
:
db
.
execute
(
"
SELECT * FROM zoom_users WHERE uid=%s
"
,
(
meeting_row
.
host_uid
,))
user_row
=
db
.
fetchone
()
assert
user_row
print
(
f
"
Meeting owned by
{
user_row
.
email
}
"
)
if
user_email
is
not
None
and
user_email
!=
user_row
.
email
:
die
(
"
Mismatched meeting host!
"
)
print
(
f
"
Deleting previous records on meeting
{
meeting_id
}
"
)
print
(
f
"
Deleting previous records on meeting
{
meeting_id
}
"
)
db
.
execute
(
"
DELETE FROM zoom_schedule WHERE mid=%s
"
,
(
meeting_row
.
mid
,))
db
.
execute
(
"
DELETE FROM zoom_schedule WHERE mid=%s
"
,
(
meeting_row
.
mid
,))
db
.
execute
(
"
DELETE FROM zoom_meetings WHERE mid=%s
"
,
(
meeting_row
.
mid
,))
db
.
execute
(
"
DELETE FROM zoom_meetings WHERE mid=%s
"
,
(
meeting_row
.
mid
,))
else
:
if
not
user_email
:
die
(
"
Meeting is not known yet, you need to specify --user
"
)
db
.
execute
(
"
SELECT * FROM zoom_users WHERE email=%s
"
,
(
user_email
,))
user_row
=
db
.
fetchone
()
if
user_row
is
None
:
die
(
f
"
E-mail
{
user_email
}
not found
"
)
meet
=
get_meeting
(
user_row
.
user_id
,
meeting_id
)
meet
=
get_meeting
(
user_row
.
user_id
,
meeting_id
)
insert_meeting
(
uid
,
meet
)
insert_meeting
(
user_row
.
uid
,
meet
)
db_conn
.
commit
()
db_conn
.
commit
()
...
@@ -164,7 +178,7 @@ def fetch_single(user_email, meeting_id):
...
@@ -164,7 +178,7 @@ def fetch_single(user_email, meeting_id):
argp
=
argparse
.
ArgumentParser
(
description
=
"
Fetch meeting data from Zoom API
"
)
argp
=
argparse
.
ArgumentParser
(
description
=
"
Fetch meeting data from Zoom API
"
)
argp
.
add_argument
(
'
--all
'
,
action
=
'
store_const
'
,
const
=
True
,
default
=
False
,
help
=
"
re-fetch all meetings
"
)
argp
.
add_argument
(
'
--all
'
,
action
=
'
store_const
'
,
const
=
True
,
default
=
False
,
help
=
"
re-fetch all meetings
"
)
argp
.
add_argument
(
'
--user
'
,
metavar
=
'
EMAIL
'
,
help
=
'
fetch meetings hosted by a given user
'
)
argp
.
add_argument
(
'
--user
'
,
metavar
=
'
EMAIL
'
,
help
=
'
fetch meetings hosted by a given user
'
)
argp
.
add_argument
(
'
--meeting
'
,
type
=
int
,
metavar
=
'
ID
'
,
help
=
'
fetch a single meeting (requires --user)
'
)
argp
.
add_argument
(
'
--meeting
'
,
type
=
int
,
metavar
=
'
ID
'
,
help
=
'
fetch a single meeting (requires --user
unless the meeting is already known
)
'
)
argp
.
add_argument
(
'
--debug
'
,
action
=
'
store_const
'
,
const
=
True
,
default
=
False
,
help
=
"
enable debugging dumps
"
)
argp
.
add_argument
(
'
--debug
'
,
action
=
'
store_const
'
,
const
=
True
,
default
=
False
,
help
=
"
enable debugging dumps
"
)
args
=
argp
.
parse_args
()
args
=
argp
.
parse_args
()
...
@@ -173,8 +187,6 @@ debug = args.debug
...
@@ -173,8 +187,6 @@ debug = args.debug
if
args
.
all
:
if
args
.
all
:
fetch_all
()
fetch_all
()
elif
args
.
meeting
is
not
None
:
elif
args
.
meeting
is
not
None
:
if
args
.
user
is
None
:
argp
.
error
(
"
--meeting requires --user
"
)
fetch_single
(
args
.
user
,
args
.
meeting
)
fetch_single
(
args
.
user
,
args
.
meeting
)
elif
args
.
user
is
not
None
:
elif
args
.
user
is
not
None
:
raise
NotImplementedError
raise
NotImplementedError
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment