myt/doc/myt.html
Ari Archer 10959696ea
Improvements to logic, bug fixes, v0.7 and improvements
- Added a section to bug report template to dump `traceback.md`
- Added better default `YTDL_OPTS`
- Added `uploaded in`, `duration` and `tags` sections in picker
- Replaced `title` section with `fulltitle` and `channel_id` with
  `uploader` in picker
- Added a way to view descriptions using less(1)
- Fixed curses not properly handling resizing
- Moved text from center to 0, 0 because it was annoying
- Made curses display the latest key fed to mpv
- Made history be cleared automatically
- Removed unnesesary manual writting to files using
  `readline.write_history_file(histfile)`
- Improved the way search queries are handled and verified
- Handled `EOFError` for when you CTRL + D the input

Signed-off-by: Ari Archer <ari@mail.ari-web.xyz>
2022-02-02 21:55:50 +02:00

166 lines
No EOL
12 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module myt</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>myt</strong></big></big> (version 0.7)</font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/ari/Ari/coding/projects_/myt/src/myt">/home/ari/Ari/coding/projects_/myt/src/myt</a></font></td></tr></table>
<p><tt>A&nbsp;CLI&nbsp;tool&nbsp;for&nbsp;searching&nbsp;and&nbsp;watching&nbsp;videos&nbsp;on&nbsp;youtube&nbsp;with&nbsp;no&nbsp;spyware&nbsp;and&nbsp;MPV&nbsp;and&nbsp;yt-dlp</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="curses.html">curses</a><br>
<a href="logging.html">logging</a><br>
<a href="os.html">os</a><br>
</td><td width="25%" valign=top><a href="random.html">random</a><br>
<a href="readline.html">readline</a><br>
<a href="requests.html">requests</a><br>
</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
<a href="urllib.html">urllib</a><br>
<a href="warnings.html">warnings</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="builtins.html#Exception">builtins.Exception</a>(<a href="builtins.html#BaseException">builtins.BaseException</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="myt.html#RestartProgramError">RestartProgramError</a>
</font></dt></dl>
</dd>
</dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="RestartProgramError">class <strong>RestartProgramError</strong></a>(<a href="builtins.html#Exception">builtins.Exception</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt><a href="builtins.html#Exception">Exception</a>&nbsp;raised&nbsp;when&nbsp;requiring&nbsp;program&nbsp;to&nbsp;restart&nbsp;its&nbsp;main&nbsp;function<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="myt.html#RestartProgramError">RestartProgramError</a></dd>
<dd><a href="builtins.html#Exception">builtins.Exception</a></dd>
<dd><a href="builtins.html#BaseException">builtins.BaseException</a></dd>
<dd><a href="builtins.html#object">builtins.object</a></dd>
</dl>
<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Methods inherited from <a href="builtins.html#Exception">builtins.Exception</a>:<br>
<dl><dt><a name="RestartProgramError-__init__"><strong>__init__</strong></a>(self, /, *args, **kwargs)</dt><dd><tt>Initialize&nbsp;self.&nbsp;&nbsp;See&nbsp;help(type(self))&nbsp;for&nbsp;accurate&nbsp;signature.</tt></dd></dl>
<hr>
Static methods inherited from <a href="builtins.html#Exception">builtins.Exception</a>:<br>
<dl><dt><a name="RestartProgramError-__new__"><strong>__new__</strong></a>(*args, **kwargs)<font color="#909090"><font face="helvetica, arial"> from <a href="builtins.html#type">builtins.type</a></font></font></dt><dd><tt>Create&nbsp;and&nbsp;return&nbsp;a&nbsp;new&nbsp;object.&nbsp;&nbsp;See&nbsp;help(type)&nbsp;for&nbsp;accurate&nbsp;signature.</tt></dd></dl>
<hr>
Methods inherited from <a href="builtins.html#BaseException">builtins.BaseException</a>:<br>
<dl><dt><a name="RestartProgramError-__delattr__"><strong>__delattr__</strong></a>(self, name, /)</dt><dd><tt>Implement&nbsp;delattr(self,&nbsp;name).</tt></dd></dl>
<dl><dt><a name="RestartProgramError-__getattribute__"><strong>__getattribute__</strong></a>(self, name, /)</dt><dd><tt>Return&nbsp;getattr(self,&nbsp;name).</tt></dd></dl>
<dl><dt><a name="RestartProgramError-__reduce__"><strong>__reduce__</strong></a>(...)</dt><dd><tt>Helper&nbsp;for&nbsp;pickle.</tt></dd></dl>
<dl><dt><a name="RestartProgramError-__repr__"><strong>__repr__</strong></a>(self, /)</dt><dd><tt>Return&nbsp;repr(self).</tt></dd></dl>
<dl><dt><a name="RestartProgramError-__setattr__"><strong>__setattr__</strong></a>(self, name, value, /)</dt><dd><tt>Implement&nbsp;setattr(self,&nbsp;name,&nbsp;value).</tt></dd></dl>
<dl><dt><a name="RestartProgramError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl>
<dl><dt><a name="RestartProgramError-__str__"><strong>__str__</strong></a>(self, /)</dt><dd><tt>Return&nbsp;str(self).</tt></dd></dl>
<dl><dt><a name="RestartProgramError-with_traceback"><strong>with_traceback</strong></a>(...)</dt><dd><tt><a href="builtins.html#Exception">Exception</a>.<a href="#RestartProgramError-with_traceback">with_traceback</a>(tb)&nbsp;--<br>
set&nbsp;self.<strong>__traceback__</strong>&nbsp;to&nbsp;tb&nbsp;and&nbsp;return&nbsp;self.</tt></dd></dl>
<hr>
Data descriptors inherited from <a href="builtins.html#BaseException">builtins.BaseException</a>:<br>
<dl><dt><strong>__cause__</strong></dt>
<dd><tt>exception&nbsp;cause</tt></dd>
</dl>
<dl><dt><strong>__context__</strong></dt>
<dd><tt>exception&nbsp;context</tt></dd>
</dl>
<dl><dt><strong>__dict__</strong></dt>
</dl>
<dl><dt><strong>__suppress_context__</strong></dt>
</dl>
<dl><dt><strong>__traceback__</strong></dt>
</dl>
<dl><dt><strong>args</strong></dt>
</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-ask_user"><strong>ask_user</strong></a>(prompt: str, valid_options: tuple[str, ...] = ()) -&gt; str</dt><dd><tt>Ask&nbsp;user&nbsp;for&nbsp;input&nbsp;and&nbsp;parse&nbsp;it&nbsp;as&nbsp;an&nbsp;answer</tt></dd></dl>
<dl><dt><a name="-debug"><strong>debug</strong></a>(msg: str) -&gt; None</dt><dd><tt>Print&nbsp;debug&nbsp;message</tt></dd></dl>
<dl><dt><a name="-die"><strong>die</strong></a>(msg: str) -&gt; int</dt><dd><tt>Print&nbsp;a&nbsp;message&nbsp;to&nbsp;stderr&nbsp;and&nbsp;return&nbsp;error&nbsp;code</tt></dd></dl>
<dl><dt><a name="-download_media"><strong>download_media</strong></a>(url: str, extracted_info: dict[str, typing.Any]) -&gt; int</dt><dd><tt>Download&nbsp;media&nbsp;from&nbsp;youtube</tt></dd></dl>
<dl><dt><a name="-fn_register"><strong>fn_register</strong></a> = register(...)</dt><dd><tt>register(func,&nbsp;*args,&nbsp;**kwargs)&nbsp;-&gt;&nbsp;func<br>
&nbsp;<br>
Register&nbsp;a&nbsp;function&nbsp;to&nbsp;be&nbsp;executed&nbsp;upon&nbsp;normal&nbsp;program&nbsp;termination<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;func&nbsp;-&nbsp;function&nbsp;to&nbsp;be&nbsp;called&nbsp;at&nbsp;exit<br>
&nbsp;&nbsp;&nbsp;&nbsp;args&nbsp;-&nbsp;optional&nbsp;arguments&nbsp;to&nbsp;pass&nbsp;to&nbsp;func<br>
&nbsp;&nbsp;&nbsp;&nbsp;kwargs&nbsp;-&nbsp;optional&nbsp;keyword&nbsp;arguments&nbsp;to&nbsp;pass&nbsp;to&nbsp;func<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;func&nbsp;is&nbsp;returned&nbsp;to&nbsp;facilitate&nbsp;usage&nbsp;as&nbsp;a&nbsp;decorator.</tt></dd></dl>
<dl><dt><a name="-main"><strong>main</strong></a>() -&gt; int</dt><dd><tt>Entry/main&nbsp;function</tt></dd></dl>
<dl><dt><a name="-make_new_config"><strong>make_new_config</strong></a>() -&gt; None</dt><dd><tt>Make&nbsp;new&nbsp;configuration&nbsp;file</tt></dd></dl>
<dl><dt><a name="-new_mpv_client"><strong>new_mpv_client</strong></a>() -&gt; mpv.MPV</dt><dd><tt>Create&nbsp;a&nbsp;new&nbsp;mpv.MPV()&nbsp;instance</tt></dd></dl>
<dl><dt><a name="-parse_args"><strong>parse_args</strong></a>() -&gt; None</dt><dd><tt>Parse&nbsp;argv[1]&nbsp;arguments</tt></dd></dl>
<dl><dt><a name="-pick_video"><strong>pick_video</strong></a>(video_json: dict[str, typing.Any], __picked_video_url: Optional[str] = None) -&gt; str</dt><dd><tt>Pick&nbsp;a&nbsp;video</tt></dd></dl>
<dl><dt><a name="-play_url"><strong>play_url</strong></a>(url: str) -&gt; int</dt><dd><tt>Play&nbsp;a&nbsp;URL&nbsp;in&nbsp;MPV</tt></dd></dl>
<dl><dt><a name="-print_version_and_exit"><strong>print_version_and_exit</strong></a>() -&gt; None</dt><dd><tt>Print&nbsp;version&nbsp;and&nbsp;exit</tt></dd></dl>
<dl><dt><a name="-show_in_less"><strong>show_in_less</strong></a>(text: str, next_fn: Any) -&gt; Any</dt><dd><tt>Show&nbsp;text&nbsp;in&nbsp;less(1)</tt></dd></dl>
<dl><dt><a name="-view_thumbnail"><strong>view_thumbnail</strong></a>(video_json: dict[str, typing.Any], video_url: str, next_fn: Any) -&gt; Any</dt><dd><tt>View&nbsp;thumbnail&nbsp;in&nbsp;default&nbsp;image&nbsp;viewer</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>ARGS</strong> = {'--version': &lt;function print_version_and_exit&gt;}<br>
<strong>Any</strong> = typing.Any<br>
<strong>CONFIG_FILE</strong> = '/home/ari/.config/myt.conf'<br>
<strong>DEFAULT_CONFIG</strong> = ['[history]', 'history_file = ~/.cache/.myt_history', 'history_length = 1000', '', '[resources]', 'youtube_url = https://www.youtube.com/', 'search_url = https://vid.puffyan.us/search/', '', '[messages]', 'print_debug = yes', '', '[config]', 'readline_config = ~/.inputrc', '']<br>
<strong>Fore</strong> = &lt;colorama.ansi.AnsiFore object&gt;<br>
<strong>MIN_PYTHON</strong> = (3, 8)<br>
<strong>Optional</strong> = typing.Optional<br>
<strong>PIPE</strong> = -1<br>
<strong>SHARED_CONFIG</strong> = {}<br>
<strong>Style</strong> = &lt;colorama.ansi.AnsiStyle object&gt;<br>
<strong>YTDL_LOGGER</strong> = &lt;Logger ytdl-ignore (WARNING)&gt;<br>
<strong>YTDL_OPTS</strong> = {'addmetadata': True, 'cachedir': '/tmp/myt', 'logger': &lt;Logger ytdl-ignore (WARNING)&gt;, 'noplaylist': True, 'postprocessors': [{'key': 'FFmpegMetadata'}]}<br>
<strong>__annotations__</strong> = {'ARGS': dict[str, typing.Any], 'CONFIG_FILE': &lt;class 'str'&gt;, 'DEFAULT_CONFIG': list[str], 'SHARED_CONFIG': dict[str, typing.Any], 'YTDL_LOGGER': &lt;class 'logging.Logger'&gt;, 'YTDL_OPTS': dict[str, typing.Any]}<br>
<strong>__homepage__</strong> = 'https://ari-web.xyz/gh/myt'<br>
<strong>__license__</strong> = 'ArAr2'<br>
<strong>__license_note__</strong> = 'https://files.ari-web.xyz/files/ArAr.ari-archer.LICENSE'</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%">Ari&nbsp;Archer&nbsp;&lt;ari@mail.ari-web.xyz&gt;</td></tr></table>
</body></html>