<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блоги: заметки с тегом pogodastatusbar</title>
<link>https://blogengine.ru/blogs/tags/pogodastatusbar/</link>
<description>Автоматически собираемая лента заметок, написанных в блогах на Эгее</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.0 (v4079e)</generator>

<itunes:subtitle>Автоматически собираемая лента заметок, написанных в блогах на Эгее</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit>no</itunes:explicit>

<item>
<title>Возвращение плагина Pogoda​Status​Bar</title>
<guid isPermaLink="false">133616</guid>
<link>https://bolknote.ru/all/vozvraschenie-plagina-pogoda-status-bar/</link>
<pubDate>Fri, 10 Jan 2025 20:48:14 +0500</pubDate>
<author>Евгений Степанищев</author>
<comments>https://bolknote.ru/all/vozvraschenie-plagina-pogoda-status-bar/</comments>
<description>
&lt;p&gt;&lt;a href="https://bolknote.ru/"&gt;Евгений Степанищев&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;У меня есть традиция — время от времени чинить мой старенький и порядком уже поднадоевший мне плагин для редактора «Саблайм 3». Плагин называется &lt;a href="https://github.com/bolknote/PogodaStatusBar"&gt;&lt;i&gt;Pogoda​Status​Bar&lt;/i&gt;&lt;/a&gt;, потому что он когда-то показывал пробки и погоду с сервиса «Яндекс.Погоды».&lt;/p&gt;
&lt;p&gt;Эпоха бесплатных сервисов кончилась и «Яндекс» постепенно стал закрывал все те ходы, которыми я пользовался, чтобы получать эти данные. Я искал новые, но в какой-то момент дрогнул и &lt;a href="https://bolknote.ru/all/opyat-chinil-pogodastatusbar/"&gt;перешёл на «Гисметео»&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Всё нормально работало, но в какой-то момент плагин снова сломался. Если ничего не путаю, я предпринял попытку его починить, но у меня с наскоку не вышло и пришлось отложить эту проблему в долгий ящик — были другие дела.&lt;/p&gt;
&lt;p&gt;После новогоднего отдыха появились время и силы и я решил их часть израсходовать на плагин. Как-то зудело у меня, что он не работает.&lt;/p&gt;
&lt;p&gt;Надо сказать, что я не знаю как правильно отлаживать плагины в «Саблайме». В документации ничего не нашёл, поэтому написал небольшую обвязку и запускаю свой плагин просто из командной строки. Но в этот раз этот способ не сработал — в обвязке плагин работал, а внутри «Сайблайма» — нет.&lt;/p&gt;
&lt;p&gt;Я уже с таким сталкивался. У «Саблайма» внутри две версии «Пайтона» — 3.3 и 3.8. Обе, в общем-то, уже старые. Мой плагин запускается с версией 3.3 и у меня никак не дойдут руки залезть в общий репозиторий плагинов и переписать для моего плагина версию «Пайтона».&lt;/p&gt;
&lt;p&gt;Таким образом между «Пайтоном» у меня в командной строке и внутри «Сайблайма» — десять версий. Иногда я использую в коде что-то, чего «Сайблайм» не понимает.&lt;/p&gt;
&lt;p&gt;И вот непонятно как об этом узнавать. Можно, думаю, раздобыть старенький «Пайтон» в контейнере, но лень.&lt;/p&gt;
&lt;p&gt;Обычно я просто пристально смотрю на код, пока не понимаю как его исправить. А в этот раз так не вышло. Мне несколько раз казалось, что я понимаю в чём дело, я коммитил новый код, собирал релиз, дожидался, пока тулчейн репозитория плагинов «Саблайма» увидит новую версию, обновлялся и не получал положительного результата.&lt;/p&gt;
&lt;p&gt;В итоге, мне это надоело. Я нашёл в какой папке «Саблайм» держит плагины, они там лежат, к слову, в архивированном виде, и попытался подсунуть туда свой код — паковал папку с модифицированным кодом и заменял файл плагина. Но гадкий «Саблайм» как-то это понимал и затирал мои правки.&lt;/p&gt;
&lt;p&gt;С этим я опять поленился разбираться, вместо этого попытался отредактировать код прямо в архиве через консольный файловый менеджер &lt;tt&gt;mc&lt;/tt&gt;. Неожиданно это сработало. Так я узнал, что ошибка была в том, что я использую вызов &lt;tt&gt;html.unescape&lt;/tt&gt;, который появился только в «Пайтоне» 3.4. Пришлось заменить его на вполне устроивший меня в этом месте &lt;tt&gt;replace(&amp;apos;&amp;amp;quot;&amp;apos;, &amp;apos;&amp;quot;&amp;apos;)&lt;/tt&gt; и всё заработало.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2025.01.10@2x.webp" width="1000" height="625" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Код плагина, открытый через редактор консольного файлового менеджера&lt;/div&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Опять чинил PogodaStatusBar</title>
<guid isPermaLink="false">129270</guid>
<link>https://bolknote.ru/all/opyat-chinil-pogodastatusbar/</link>
<pubDate>Tue, 09 Jul 2024 17:28:22 +0500</pubDate>
<author>Евгений Степанищев</author>
<comments>https://bolknote.ru/all/opyat-chinil-pogodastatusbar/</comments>
<description>
&lt;p&gt;&lt;a href="https://bolknote.ru/"&gt;Евгений Степанищев&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Сегодня участвовал в довольно скучной видеоконференции. Моё участие там было хоть и необходимое, но небольшое. А чтобы не одуреть от безделья, пока я слушал всю эту скуку, решил чем-то занять руки. Давно хотел починить свой плагин для «Саблайма» «&lt;a href="https://github.com/bolknote/PogodaStatusBar/"&gt;&lt;i&gt;PogodaStatusBar&lt;/i&gt;&lt;/a&gt;», этим и занялся.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2024.07.09@2x.jpg" width="300" height="38" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Внешний вид плагина на настоящий момент&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Плагин в строке статуса показывает текущую погоду и пробки в вашем городе. Много лет данные для этого я брал с неофициального урла «Яндекса», но компания решила коммерциализировать погоду и, сколько я не искал новый способ получить её бесплатно, так и не нашёл.&lt;/p&gt;
&lt;p&gt;Пробки, кстати, тоже перестали нормально работать. Когда-то регион определялся автоматически, но это сломали. Я &lt;a href="https://bolknote.ru/all/pogodastatusbar-fixed/"&gt;чинил&lt;/a&gt; это через парсинг страницы погоды, но теперь и это не работает — «Яндекс» борется с автоматическими роботами. Поэтому пришлось искать другой способ.&lt;/p&gt;
&lt;p&gt;Я перебрал несколько малоизвестных сервисов, пока, наконец, не увидел, что страница &lt;tt&gt;yandex.ru/tune/geo/&lt;/tt&gt; содержит в себе необходимый номер. Этого хватило, чтобы починить показ пробок.&lt;/p&gt;
&lt;p&gt;С «Гисметео» пришлось повозиться. Не нашёл официальную информацию о каких-либо АПИ, которые можно вызвать без токена, но внутри погодного плагина для браузера нашёлся адрес &lt;tt&gt;services.gismeteo.ru/inform-service/inf_chrome/forecast&lt;/tt&gt;. В нём есть всё что нужно — текущая температура и закодированная иконка погоды.&lt;/p&gt;
&lt;p&gt;Определить номер города в формате «Гисметео» помогает сервис &lt;tt&gt;www.gismeteo.ru/rmq/search/{название}/1/&lt;/tt&gt;, куда я подставляю название, полученное от «Яндекс.Пробок» — там он возвращается вместе с остальными данными.&lt;/p&gt;
&lt;p&gt;Оставалось только расшифровать иконку погоды. В документации есть часть описания (остаток можно понять, скачав с «Гисметео» значки погоды), выглядит всё несложно. Например, &lt;tt&gt;d.r3&lt;/tt&gt; означает «день» (&lt;i&gt;day&lt;/i&gt;) и «дождь максимальной интенсивности» (&lt;i&gt;rain 3&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt;Поскольку у меня Юникод, в нём есть не все необходимые значки, я сделал вот такой объект, содержащий признаки, которые позволяют мне выбрать какую иконку показать:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="python"&gt;_icons = {
    &amp;quot;🌞&amp;quot;: {&amp;quot;d&amp;quot;}, # day
    &amp;quot;🌙&amp;quot;: {&amp;quot;n&amp;quot;}, # nite
    &amp;quot;☁️&amp;quot;: {&amp;quot;n&amp;quot;, &amp;quot;c&amp;quot;}, # night, cloud
    &amp;quot;🌧&amp;quot;: {&amp;quot;rs&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;r&amp;quot;}, # rain+snow, cloud, rain
    &amp;quot;🌤&amp;quot;: {&amp;quot;d&amp;quot;, &amp;quot;c&amp;quot;}, # day, cloud
    &amp;quot;🌦&amp;quot;: {&amp;quot;d&amp;quot;, &amp;quot;r&amp;quot;}, # day, rain
    &amp;quot;🌩️&amp;quot;: {&amp;quot;c&amp;quot;, &amp;quot;st&amp;quot;}, # #day, storm
    &amp;quot;⛈️&amp;quot;: {&amp;quot;c&amp;quot;, &amp;quot;st&amp;quot;, &amp;quot;r&amp;quot;}, # cloud, storm, rain
    &amp;quot;🌨&amp;quot;: {&amp;quot;c&amp;quot;, &amp;quot;s&amp;quot;}, # cloud, storm
    &amp;quot;💨&amp;quot;: {&amp;quot;mist&amp;quot;}, # mist
    &amp;quot;⚡️&amp;quot;: {&amp;quot;st&amp;quot;}, # storm
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;И вот такой простой алгоритм для выбора иконки:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="python"&gt;def _getStatus(self, coded_weather):
    codes = {x.strip(&amp;quot;0123456789&amp;quot;) for x in coded_weather.split(&amp;quot;.&amp;quot;)}

    max_icon = None
    max_score = 0

    for icon, code in self._icons.items():
        result = codes &amp;amp; code
        score = sum(len(x) for x in result)
        if score &amp;gt; max_score:
            max_icon, max_score = icon, score

    return max_icon&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Идея простая — чем больше значков совпало, тем лучше; если совпал значок с более длинным названием (&lt;i&gt;st&lt;/i&gt;, &lt;i&gt;mist&lt;/i&gt;), считаем его более конкретным и важным.&lt;/p&gt;
</description>
</item>

<item>
<title>Починил PogodaStatusBar</title>
<guid isPermaLink="false">133623</guid>
<link>https://bolknote.ru/all/pogodastatusbar-fixed/</link>
<pubDate>Mon, 27 Jul 2020 22:18:39 +0500</pubDate>
<author>Евгений Степанищев</author>
<comments>https://bolknote.ru/all/pogodastatusbar-fixed/</comments>
<description>
&lt;p&gt;&lt;a href="https://bolknote.ru/"&gt;Евгений Степанищев&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Обратил внимание, что мой &lt;a href="https://bolknote.ru/all/4605/"&gt;погодно-пробочный плагин&lt;/a&gt; для «Саблайма» сломался — ничего не показывает. Я заметил не сразу, сейчас редко запускаю этот редактор. Ребята, которые пользуются регулярно, говорят, что сломался довольно давно.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2020.07.27@2x.png" width="500" height="47" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Строка статуса: в Казани +20°C, пробки три балла&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Пришлось исправить две вещи — во-первых, импорт одного из модулей перестал работать, это произошло, как я думаю, с обновлением интерпретатора, во-вторых, АПИ «Яндекса», которое я использую, перестало корректно определять регион, в котором надо показать погоду. Пришлось искать обходные манёвры.&lt;/p&gt;
&lt;p&gt;Остался ещё один баг — если «Яндекс» не отдаёт информацию о пробках (в некоторых небольших городах такой информации нет), то плагин работать не будет. Не знаю, стоит ли это править, всё-таки популярностью у него невелика́ и делал я его больше для себя.&lt;/p&gt;
</description>
</item>

<item>
<title>Погодный плагин для «Sublime Text»</title>
<guid isPermaLink="false">133622</guid>
<link>https://bolknote.ru/all/4605/</link>
<pubDate>Sat, 24 Jun 2017 20:03:00 +0500</pubDate>
<author>Евгений Степанищев</author>
<comments>https://bolknote.ru/all/4605/</comments>
<description>
&lt;p&gt;&lt;a href="https://bolknote.ru/"&gt;Евгений Степанищев&lt;/a&gt;:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://bolknote.ru/pictures/2017.06.24@2x.jpg" width="747" height="482" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Окно редактора «Саблайм Текст» с погодой и пробками в строке состояния&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Написал свой первый плагин для «Саблайма» — для отображения в строке состояния &lt;a href="https://github.com/bolknote/PogodaStatusBar/"&gt;погоды и пробок&lt;/a&gt; «Яндекса». Заодно немного повспоминал «Пайтон», давно на нём ничего не писал.&lt;/p&gt;
&lt;p&gt;Удивительно, но факт — другого работоспособного плагина на эту тему не обнаружилось. Единственный конкурент использует старое АПИ «Яху», которое уже не работает, потому не работает и плагин.&lt;/p&gt;
&lt;p&gt;Отдельное спасибо «Яндексу» за то, что их АПИ умеет определять текущее местоположение — ничего задавать в конфиге не надо, удобно.&lt;/p&gt;
&lt;p&gt;Поскольку в строке состояния можно выводить только буквы, воспользовался Юникодом для вывода погодных значков, для уровня пробок не нашлось ничего лучше фруктов, так что индикатором загруженности дорог у меня служат зелёное яблоко, жёлтый лимон и красный помидор. Не знаю будут ли видны эти символы пользователям Линукса или Виндоуза, мне негде посмотреть.&lt;/p&gt;
&lt;p&gt;Пришлось повозиться с АПИ самого «Саблайма». Во-первых, отдельного события на старт редактора нет, пришлось активировать плагин на получение фокуса окном. Во-вторых, некоторые авторы плохо читают документацию — у многих их плагины полностью переинициализируются на событие, это ни к чему, я, например, дёргаю «Яндекс» как можно реже, по таймеру в отдельном потоке, а в строке показываю кешированное.&lt;/p&gt;
&lt;p&gt;В настройках есть шаблон вывода, можно убрать пробки или погоду, если они не нужны.&lt;/p&gt;
&lt;p&gt;Подал пул реквест на включение в саблаймовский пакетный менеджер, но особо упорствовать не буду, если откажут.&lt;/p&gt;
</description>
</item>


</channel>
</rss>