main.py
mps-youtube.
https://github.com/np1/mps-youtube
Copyright (C) 2014, 2015 np1 and contributors
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
matchfunction(func, regex, userinput)
¶
Match userinput against regex.
Call func, return True if matches.
Source code in mps_youtube/main.py
def matchfunction(func, regex, userinput):
""" Match userinput against regex.
Call func, return True if matches.
"""
# Not supported in python 3.3 or lower
# match = regex.fullmatch(userinput)
# if match:
match = regex.match(userinput)
if match and match.group(0) == userinput:
matches = match.groups()
util.dbg("input: %s", userinput)
util.dbg("function call: %s", func.__name__)
util.dbg("regx matches: %s", matches)
try:
func(*matches)
except IndexError:
if g.debug_mode:
g.content = ''.join(traceback_py.format_exception(
*sys.exc_info()))
g.message = util.F('invalid range')
g.content = g.content or content.generate_songlist_display()
except (ValueError, IOError) as e:
if g.debug_mode:
g.content = ''.join(traceback_py.format_exception(
*sys.exc_info()))
g.message = util.F('cant get track') % str(e)
g.content = g.content or\
content.generate_songlist_display(zeromsg=g.message)
except Exception as e:#pafy.GdataError as e:
import traceback
traceback.print_exception(type(e), e, e.__traceback__)
if g.debug_mode:
g.content = ''.join(traceback.format_exception(
*sys.exc_info()))
g.message = util.F('no data') % e
g.content = g.content
return True
prompt_for_exit()
¶
Ask for exit confirmation.
Source code in mps_youtube/main.py
def prompt_for_exit():
""" Ask for exit confirmation. """
g.message = c.r + "Press ctrl-c again to exit" + c.w
g.content = content.generate_songlist_display()
screen.update()
try:
userinput = input(c.r + " > " + c.w)
except (KeyboardInterrupt, EOFError):
commands.misc.quits(showlogo=False)
return userinput