personal-site/public/posts/pyautogui-for-simplifying-a.../index.html

174 lines
11 KiB
HTML

<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>PyAutoGUI for simplifying anki routine</title>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,500;0,700;1,300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://god.redeyes.club/css/basic.css">
</head>
<body>
<header class="logo--wrapper">
<a href="/posts/pyautogui-for-simplifying-anki-routine/"><pre class="logo toilet-logo" title="Home">
░█▀▄░█░░░█▀█░█▀▀
░█▀▄░█░░░█░█░█░█
░▀▀░░▀▀▀░▀▀▀░▀▀▀
</pre></a>
<nav>
<ul class="page-list">
<li class="page-link"><a href="/portfolio/">
░█▀█░█▀█░█▀▄░▀█▀░█▀▀░█▀█░█░░░▀█▀░█▀█
░█▀▀░█░█░█▀▄░░█░░█▀▀░█░█░█░░░░█░░█░█
░▀░░░▀▀▀░▀░▀░░▀░░▀░░░▀▀▀░▀▀▀░▀▀▀░▀▀
kek
</a></li>
<li class="page-link"><a href="/posts/">
░█▀▄░█░░░█▀█░█▀▀
░█▀▄░█░░░█░█░█░█
░▀▀░░▀▀▀░▀▀▀░▀▀▀
kek
</a></li>
<li class="page-link"><a href="https://god.redeyes.club/">░█▄█░█▀█░▀█▀░█▀█░▄▀░░▀▄░
░█░█░█▀█░░█░░█░█░█░░░░█░
░▀░▀░▀░▀░▀▀▀░▀░▀░░▀░░▀░░</a></li>
</ul>
</nav>
</header>
<main>
<article class="blog-post">
<h1 class="blog-header">PyAutoGUI for simplifying anki routine</h1>
<sub><small><time>21.01.2021 10:26</time></small></sub>
<div>
<p>I had been adding some cards to Anki.
It was lowercase word and word with stress in russian. like <em>торты тОрты.</em></p>
<p>I&rsquo;m lazy and i wrote two simple scripts. All what i have to do is input words with stress into a file.<br>
First script for creating file with list of sequence of word with stress and lowercase word</p>
<div class="highlight"><div style="color:#fff;background-color:#111;-moz-tab-size:2;-o-tab-size:2;tab-size:2">
<table style="border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
<pre tabindex="0" style="color:#fff;background-color:#111;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5
</span></code></pre></td>
<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
<pre tabindex="0" style="color:#fff;background-color:#111;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-python" data-lang="python"><span style="color:#fb660a;font-weight:bold">import</span> os
f = open(<span style="color:#0086d2">&#34;/home/horhik/text.txt&#34;</span>, <span style="color:#0086d2">&#39;r+&#39;</span>)
lines = f.readlines()
<span style="color:#fb660a;font-weight:bold">for</span> ind, line in enumerate(lines):
print(line.lower(), <span style="color:#0086d2">&#34; &#34;</span>, line)
</code></pre></td></tr></table>
</div>
</div><p>After, i just pushed output to file and opened it it Emacs.</p>
<p>Second script automatizing adding cards to A<strong>nki</strong>.<br>
I split my window by <strong>Anki</strong> &ldquo;add card&rdquo; window and <strong>Emacs</strong>. As i use <code>evil</code> mode in Emacs, script looks like that:</p>
<div class="highlight"><div style="color:#fff;background-color:#111;-moz-tab-size:2;-o-tab-size:2;tab-size:2">
<table style="border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block;"><tr><td style="vertical-align:top;padding:0;margin:0;border:0;">
<pre tabindex="0" style="color:#fff;background-color:#111;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18
</span><span style="margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19
</span></code></pre></td>
<td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%">
<pre tabindex="0" style="color:#fff;background-color:#111;-moz-tab-size:2;-o-tab-size:2;tab-size:2"><code class="language-python" data-lang="python"><span style="color:#fb660a;font-weight:bold">import</span> pyautogui
<span style="color:#fb660a;font-weight:bold">import</span> os
<span style="color:#fb660a;font-weight:bold">while</span>(<span style="color:#fb660a;font-weight:bold">True</span>):
pyautogui.hotkey(<span style="color:#0086d2">&#34;winleft&#34;</span>, <span style="color:#0086d2">&#39;j&#39;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># toggle window</span>
pyautogui.press([<span style="color:#0086d2">&#34;v&#34;</span>, <span style="color:#0086d2">&#34;$&#34;</span>, <span style="color:#0086d2">&#34;y&#34;</span>]) <span style="color:#080;background-color:#0f140f;font-style:italic"># copy string</span>
pyautogui.hotkey(<span style="color:#0086d2">&#34;winleft&#34;</span>, <span style="color:#0086d2">&#39;j&#39;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># toggle window</span>
pyautogui.hotkey(<span style="color:#0086d2">&#34;ctrl&#34;</span>, <span style="color:#0086d2">&#39;v&#39;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># past text</span>
pyautogui.press(<span style="color:#0086d2">&#34;tab&#34;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># next input field</span>
pyautogui.hotkey(<span style="color:#0086d2">&#34;winleft&#34;</span>, <span style="color:#0086d2">&#39;j&#39;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># toggle window</span>
pyautogui.press([<span style="color:#0086d2">&#34;j&#34;</span>,<span style="color:#0086d2">&#34;0&#34;</span>, <span style="color:#0086d2">&#34;w&#34;</span>, <span style="color:#0086d2">&#34;v&#34;</span> , <span style="color:#0086d2">&#34;$&#34;</span>, <span style="color:#0086d2">&#34;y&#34;</span>, <span style="color:#0086d2">&#34;0&#34;</span>, <span style="color:#0086d2">&#34;j&#34;</span>, <span style="color:#0086d2">&#34;j&#34;</span> ])
<span style="color:#080;background-color:#0f140f;font-style:italic"># move to next line beginning, copy it and go to next occurence</span>
pyautogui.hotkey(<span style="color:#0086d2">&#34;winleft&#34;</span>, <span style="color:#0086d2">&#39;j&#39;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># toggle window</span>
pyautogui.hotkey(<span style="color:#0086d2">&#34;ctrl&#34;</span>, <span style="color:#0086d2">&#39;v&#39;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># paste text</span>
pyautogui.press(<span style="color:#0086d2">&#34;tab&#34;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># ...</span>
pyautogui.press(<span style="color:#0086d2">&#34;tab&#34;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># ...</span>
pyautogui.press(<span style="color:#0086d2">&#34;tab&#34;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># ...</span>
pyautogui.press(<span style="color:#0086d2">&#34;tab&#34;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># ... way to submit button</span>
pyautogui.press(<span style="color:#0086d2">&#34;space&#34;</span>) <span style="color:#080;background-color:#0f140f;font-style:italic"># pressing submit button</span>
</code></pre></td></tr></table>
</div>
</div><p><code>while(true)</code> was my mistake. I launched script in terminal, with <code>sleep</code> 3 seconds before.<br>
But i couldn&rsquo;t shut script down without any strange effect when i opening not only 2 windows in my Window Manager.<br>
Some strange things happen before I cached terminal and pressed <code>Ctrl+C</code></p>
</div>
</article>
</main>
<footer>
<ul class="contacts">
<li><a href="https://github.com/horhik" class=" contact-link" title="github">
<pre>
┏━╸╻╺┳╸╻ ╻╻ ╻┏┓
┃╺┓┃ ┃ ┣━┫┃ ┃┣┻┓
┗━┛╹ ╹ ╹ ╹┗━┛┗━┛</pre></a></li>
<li><a href="https://mastodon.ml/web/accounts/74403" class=" contact-link" title="mastodon: @horhik@mastodon.ml">
<pre>
┏┳┓┏━┓┏━┓╺┳╸┏━┓╺┳┓┏━┓┏┓╻
┃┃┃┣━┫┗━┓ ┃ ┃ ┃ ┃┃┃ ┃┃┗┫
╹ ╹╹ ╹┗━┛ ╹ ┗━┛╺┻┛┗━┛╹ ╹
</pre></a></li>
<li><a href="mailto:horhik@tuta.io" class=" contact-link" title="Mail">
<pre>
┏┳┓┏━┓╻╻
┃┃┃┣━┫┃┃
╹ ╹╹ ╹╹┗━╸</pre></a></li>
</ul>
<p class="copyright">&copy;2021 <a href="https://god.redeyes.club/">Horhik</a></p>
</footer>
</body>
</html>