30 Января 2016

Кому котлету?! - МНЕ!.

Кому котлету?! - МНЕ!. Кот, Мурло, Рыжие, Еда
Показать полностью 1

Исторический коктейль Калининградской области - часть, вроде бы, шестая

Мой рассказ про то, как намешалась история и что можно найти в Калининградской области подваливает к середине. Настоятельно рекомендую прочитать предыдущие части, поскольку с середины как-то вообще не то будет.


На очереди - ещё один шаг вперёд по линии истории.

Думаю, все знают, как развернулась промышленная Германия во второй половине XX века. Громады металла, массивные постройки, ржавые механизЪмы, которые скрипят и кровоточат (с). Индустриальный рай, который в неплохом состояние дошёл до нас. Дошёл настолько хорошо, что об этом будет целых три записи, сейчас общая, а вот в следующих - вообще крутые вещи. Нет, правда.


Поехали фотки.


Это здание, выглядящее как VIP-домище, на деле - зернохранилище. Зернохралилище, Карл, обычный элеватор!

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

Смотри, Карл, как здесь любят зерно! Ещё один элеватор, причём двойной (справа торчит ещё здание и видно переходы).

Оба элеватора по прежнему используются. Как я нагуглил - владельцем является фирма с романтическим красивейшим названием "Портовый элеватор" :)

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

Как по мне, немецкий индастриал, даже при сугубо функциональном назначение, отличается эстетством. В Советах предпочитали *бошить побольше да побыстрее, не до красоты было, а Германия умудрялась сохранять стиль даже в заводских постройках. Не хочу говорить, что, дескать, так лучше, всё таки своё родное неказистое к сердцу ближе. Но посмотреть, без сомнения, стоит.


NB: Кстати, вот эти и многие следующие фотографии сделаны с катера. Туристам сильно советую взять экскурсию по воде, как это ни банально выглядит. Город, всё же, портовый и есть, что посмотреть с воды, особенно если индастриал любите.



Загадку про семь мостов Кёнигсберга, наверное, слышали многие. Как ни странно, сейчас действующих в городе тоже семь, хотя и не все совпадают с загадкой )

На фото - кусок стремительно пролетающего мимо разводного механизма Медового моста. Механизм рабочий до сих пор, но его не разводят регулярно, только для профилактики и по особым случаям.

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

Кстати, рекомендую почитать про Берлинский мост, монументальная штука предвоенного времени, очень круто выглядящаяя в разрушенном виде - http://www.wikiwand.com/ru/%D0%9F%D0%B0%D0%BB%D1%8C%D0%BC%D0...


Ранее мосты были разводные. Сейчас работает только один.

Кроме привычных крылатых разводов, в Калининграде я впервые увидел вертикально поднимающийся мост. Чтобы открыть проход кораблям центральный пролёт просто поднимается вверх. Этот красавец ещё и двухуровневый: сверху - поезда, внизу - автомобили.

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

Простите дурака, не сделал ни одного полного кадра моста, только башня. Выкладываю чужую, чтобы представляли, о чём я вообще.

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост
Детали конструкции соединяются заклёпками, городская легенда гласит, что одна из них - золотая. Но это даже как-то неоригинально, в Питере такая же байка есть :)



Мостов с вертикальным механизмом подъема даже два. Правда первый (который поменьше) сейчас не используется. Если точнее - у него просто нет центрального пролёта :)

На этом кадре он ближний к нам.

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

Жирафы воют на луну.

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост
Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

В порту, разумеется, есть краны. Я не совсем уверен, что они произведены до войны, но в данной мешанине эпох это не существенно. Кранбаэберсвальде - исконно немецкая фирма, производящая по-немецки строгие и живучие механизмы. И с традиционно грозным названием :)



Даже в простых постройках есть своя статность и строгость форм. Это - домик возле ЖД вокзала в Багратионовске, точное предназначение неизвестно.

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

Город Гвардейск (бывш. Тапиау). Вероятно, котельная. Находится за обветшалым забором. Ну я на что-то там залез, над забором высунулся, прицелился камерой, и тут на меня выходит военный по форме. Я сначала было подумал, что это охранник, ан нет, там реально войсковая учебка :) Пришлось притвориться мышью, сделать вид, что не успел отснять и свалить.

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

Во время катаний по деревням время от времени попадались очень интересные опоры ЛЭП, причём довольно много различных видов. Каюсь, было лень останавливаться и снимать, вот это - единственная имеющаяся фотография, спасибо аистам. Все опоры разительно отличались от современных ж/б палок: плавные формы, приятные глазу линии.

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

Германия давно уже славится отличными дорогами. И если автобаны нам привычны, то качество и сохранность брусчатки не сразу укладывается в голове. Каким то образом камни подбиты друг к другу так, что за сотни лет не вывалились. Ездить по ним на современных авто, конечно, то ещё удовольствие, но речь не о том.

Трамвайные пути тоже достались от немцев, этот кусок, как можно догадаться, уже не очень используется.

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

Раньше за каждым участком дороги следил специально выделенный человек, ремонтировал, по возможности. Причём люди эти высоко ценились и даже на пенсии продолжали как-то учавствовать в жизни дороги.

Местные говорят, что брусчатка живёт ровно до тех пор, пока не приходится её ремонтировать или разбирать. Как только перекапывают подземные коммуникации и пересобирают дорогу - считай всё, скоро пойдёт буграми и придётся менять на асфальт.



И на последок я снова прорекламирую так понравившийся нам Черняховск и замок Инстербург. Там есть небольшой музей на общественных началах, в основном из вещей, в основном из вещей начала XX века. Вещи приносят люди, они находятся где-нибудь на чердаках или заброшеных зданиях. В городе тоже есть музей, но здесь намного уютнее, всё стоит просто так, можно посмотреть ближе, потрогать.

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

А во дворе того же замка до сих пор используют мусорные баки сами видите какого года.

Исторический коктейль Калининградской области - часть, вроде бы, шестая Индастриал рок, Калининград, Калининградская область, Путешествия, Путешествие по России, Германия, Длиннопост

На сегодня всё. Следующие 2 части чуть ли не самые интересные для любителей индастриала, правда. Хорошо сохранившиеся и с подрбными историческими выкладками. Так что пока ;)

Показать полностью 14

Макрофотографии различных веществ.Часть 1.Металлический магний.

Как это работает :Откройте первое фото в отдельном окне и увеличьте

Макрофотографии различных  веществ.Часть 1.Металлический магний. Химия, Магний, Макросъемка, Красота, Длиннопост
Макрофотографии различных  веществ.Часть 1.Металлический магний. Химия, Магний, Макросъемка, Красота, Длиннопост
Макрофотографии различных  веществ.Часть 1.Металлический магний. Химия, Магний, Макросъемка, Красота, Длиннопост
Показать полностью 2

Государственно-частное поедание

Государственно-частное поедание Россия, Общество, Экономика, Политика, Длиннопост

Много говорится сейчас о таком явлении, как «государственно-частное партнерство». Существует даже закон о таком партнерстве, а именно ФЗ № 224 от 13 июля 2015 г.


Как же определяется по закону этот странный пушной зверек? И что эти буковки ФЗ несут нам, простым смертным? А несут они нечто вполне зловещее.


«Государственно-частное партнерство - юридически оформленное на определенный срок и основанное на объединении ресурсов, распределении рисков сотрудничество публичного партнера с одной стороны и частного партнера с другой стороны, которое осуществляется на основании соглашения о ГЧП, заключенного в соответствии с настоящим федеральным законом в целях привлечения в экономику частных инвестиций, обеспечения органами государственной власти и органами местного самоуправления доступности товаров, работ, услуг и повышения их качества.»


Казалось бы, ну распределение рисков, и что? А вот что:


Минздрав: бесплатную медпомощь курящим следует ограничить.


Граждан РФ, которые безответственно относятся к собственному здоровью - курят и не проходят обязательную диспансеризацию, - следует ограничить в объемах получения бесплатной медицинской помощи, заявил в четверг главный внештатный специалист Минздрава России по профилактической медицине Сергей Бойцов. Он принял участие в "круглом столе" на тему "Мониторинг охвата и качества проводимой диспансеризации определенных групп взрослого населения РФ" в ЦИК партии "Единая Россия".


"Если человек безответственно относится к своему здоровью, мы вполне правы и должны поставить вопрос о дифференцированной сумме средств на оказание медицинской помощи. Так делают многие страны, и я думаю, это нормальные партнерские отношения, даже патерналистские, между гражданином и государством", - сказал Бойцов. Суть предложения - внести две переменные для оценки ответственности отношения граждан к своему здоровью. "Они значимы с точки зрения влияния на здоровье и легко измеряемы: первое - это некурение, второе - факт прохождения диспансеризации", - уточнил Бойцов. По мнению эксперта, финансовое стимулирование граждан к тому, чтобы те следили за своим здоровьем, может оказаться неэффективной тратой средств бюджета. "Дальше есть два пути: человека наказать рублем или его рублем стимулировать", - отметил Бойцов. - Стимулирование означает дополнительные расходы, хотя потенциал фонда социального страхования здесь определенные резервы имеет. В решении наказать все упирается в 41 статью Конституции РФ: "Каждый имеет право на охрану здоровья и медицинскую помощь". "Думаю, самое главное - что здесь (в этой статье Конституции - прим.ТАСС) нет (слов) "равное право"", - считает специалист Минздрава.



Ловко, да? Прописано в Конституции «каждый имеет право на охрану здоровья», но есть те, на ком можно сэкономить, и эти люди становятся чуть менее «равными».


Вот это и есть — настоящее государственно частное ПАРТНЕРСТВО. Когда социальная функция государства уходит в поле услуги, отоваривается, и вручается частному партнеру не как гарантированная неотъемлемая часть отношений между государством и человеком, а как товар со своим «прайсом». Когда нашу несовершенную Конституцию, какой-никакой, но оплот ПРАВА ЧЕЛОВЕКА начинают эдак вот «дописывать» и «додумывать», кроить из нее «партнерство» — будет не партнерство. Будет поедание более мощным «партнером» менее мощного.



И здесь приведенный выше пример — лишь первая ласточка, скоро мы увидим и многое другое. Не куришь, значит выпиваешь. Не выпиваешь — значит у тебя лишний вес. Или еще чего-нибудь равно вредное для здоровья — ну и какие тебе тогда государственные услуги в сфере здравоохранения?


А если прогулял детский сад без справки — можно тебя лишить места в детском саду. А если прогулял уроки в школе — можно подумать, чтобы лишить тебя и бесплатного образования.


Это ж какая экономия бюджету выйдет. Ведь половину страны уже точно можно будет лишить права на бесплатные услуги.


Кровавый и тоталитарный СССР до такого «партнерства» почем-то не додумался. А нынче у нас право на жизнь стало на равных с правом на смерть. И право на смерть постепенно это право на жизнь вытесняет.


http://antiseptic.livejournal.com/706329.html

http://tass.ru/obschestvo/2621980

Показать полностью

AMV-xDieguitoAMV -Closer to Hell

Приятная мелочь из старых жестких дисков

Нихао пикабушники.  Сегодня я покажу вам как делать не нужно. И за это вас по головке не погладят, так что дальше можно не читать.

Приятная мелочь из старых жестких дисков Жесткий диск, Кот, Счетчик воды, Счетчик, Лайфхак, Длиннопост

Итак, работаю сисадмином (4 кота, но бороды нет и свитера не люблю), завалялись старые SCSI диски которые уже отжили свое, найти старые мертвые HDD не проблема в общем, сами блоки с блинами вам отдадут в какой нибудь компьютерной мастерской даром.
Нам понадобиться штуки... В моем случае - три. Можно больше (даже лучше). Вообщем чем больше тем лучше. Разбираем их, используя отвертки torx. Конечно, стоит сразу полюбоваться этим красивым видом, можно даже на стеночку повесить, часы сделать или еще как либо применить. Но сегодня мы тут не за этим.

Приятная мелочь из старых жестких дисков Жесткий диск, Кот, Счетчик воды, Счетчик, Лайфхак, Длиннопост

Нам нужно собрать вот такую стопочку неодимовых магнитов. В моем случае - три HDD по 2 штуки, итого 6 маленьких пластин + кусочек крепления для удобства.

Приятная мелочь из старых жестких дисков Жесткий диск, Кот, Счетчик воды, Счетчик, Лайфхак, Длиннопост

У нас получается отличный маленький неодимовый магнит. Точнее 6. Их очень легко использовать в быту, отлично держат разные предметы, собирают металлическую стружку, болтики, вообщем применений масса! Но собранные вместе, магнитного поля достаточно для небольшого еврейства...

Приятная мелочь из старых жестких дисков Жесткий диск, Кот, Счетчик воды, Счетчик, Лайфхак, Длиннопост

Раз

Приятная мелочь из старых жестких дисков Жесткий диск, Кот, Счетчик воды, Счетчик, Лайфхак, Длиннопост

Два.

Приятная мелочь из старых жестких дисков Жесткий диск, Кот, Счетчик воды, Счетчик, Лайфхак, Длиннопост

Кстати, работает не только с водой, но все довольно индивидуально...
Быстрый FAQ:
1. Нет, совесть не мучает.
2. Правильное расположение подбирать по месту.
3. Если есть магнитное экранирование - может не прокатить.
4. Не стоит слишком увлекаться. Лично я юзаю 1 неделю в месяц на одном приборе.
5. Нет, в обратную сторону крутится не будет, хотя есть некоторые разработки у кулибиных.
6. Легко снять легко поставить.
7. Под большим давлением колесико пытается раскрутится, но тщетно, неодим же.
8. Не думайте что ваши соседи так не делают - делают, еще как + ценник на коммуналку сами знаете какой, так что в ваших прошлых платежах вы уже заплатили, пусть и немного за других.
9. Как всегда будьте осторожны - вы работайте с постоянным магнитным полем.
10. Ну и конечно же замечательная фраза: "Болтун - находка для шпиона"
11. Как применить остальные части HDD можно почитать в следующих выпусках наших очумелых ручек.

Приятная мелочь из старых жестких дисков Жесткий диск, Кот, Счетчик воды, Счетчик, Лайфхак, Длиннопост

Всем котов!

Показать полностью 7

Я прихожу домой,

В очередной раз - минусы приветствуются, и я буду краток.


Внезапно подумал, что нынче одиночество весьма легко сркасить. Представьте, раньше, одинокми людям что оставалось? Быть дома, за закрытыми дверями, вперившись в телевизор, и тихо злеть, осознавая оторванность от жизни.


Очень удручает.


А сейчас, одинокий человек приходит домой и загружает компьютер, где он может встретить огромное количество людей, и все они будут на расстоянии вытянутой руки.


В этом мерно шагающем будущем, одиночеству дают бой.


Социальные сети, сайты знакомств, развлекательные порталы,- добавьте к этому уют современных домов и вредные привычки.


Не сложно быть одиноким, не жалуйтесь.


Ищите свои простые наслаждения в жизни. Они рядом.

Показать полностью

Как подготовить машину к долгой поездке

Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.

ЧИТАТЬ

API ВКонтакте для Python

Всем привет! Сегодня я расскажу вам немного о Пайтоновском API для соц. сети ВКонтакте.


Пост предназначен в первую очередь для школьников начинающих разработчиков, которые хотят сделать простейшее приложение.


Поскольку я сама не особо сильна в Пайтоне, о различных аспектах этого прекраснейшего языка (ООП, функциональное программирование и т.д.) я умолчу.


Давайте начнём.


Получение Python


Пайтоновскую виртуальную машину под винду вместе с небогатой средой разработки IDLE можно скачать здесь.


Не советую качать версию 3.5, ибо под ней некоторые модули (ещё не обновившиеся) могут не работать.


И если вы только начинаете знакомиться с этим языком, не советую также качать версии ниже третьей.


Если вы юзаете UNIX то должны сами знать где гуглить. Под Убунтой просто обновитесь (типа sudo apt-get update).


Также рекомендую поставить pip под вашу версию языка.


Получение модуля


В командной строке или терминале введите pip install vk (pip3 install vk)


Или можете воспользоваться этой ссылкой.


Также присутствует документация с примерами.


Что надо сделать ВКонтакте?


Авторизуемся ВКонтакте и заходим на страничку разработчиков.


Тыкаем там на кнопку "Создать приложение"

API ВКонтакте для Python ВКонтакте, Python, Длиннопост

Вводим имя и нажимаем "Подключить приложение". Тип оставляем Standalone.

API ВКонтакте для Python ВКонтакте, Python, Длиннопост

Подтверждаем действие

API ВКонтакте для Python ВКонтакте, Python, Длиннопост

После создания приложения заходим в его настройки и копируем (запоминаем) его идентификатор, он нам позже пригодится. На скриншоте ID закрашен другим цветом.

API ВКонтакте для Python ВКонтакте, Python, Длиннопост

Дополнительно можно также загрузить свою иконку, поменять имя и т.д.


Авторизация


Теперь самое интересное. Нужно получить токен авторизации.

В принципе, модуль vk вполне работает и без него. Некоторые методы могут быть вызваны вообще без авторизации на сайте. Кроме того, вы можете в самом приложении авторизоваться через свой логин и пароль (как показано в этом примере).


В принципе, говоря по-хорошему, оба способа небезопасны. Так или иначе разработчик модуля может получить доступ к вашим данным -- токену или паре логин-пароль.


Прикол в том, что токен авторизации выдаётся конкретному приложению с конкретными правами доступа и конкретным ID. Т.е. в принципе, разрабу модуля он бесполезен.


А вот ваши данные авторизации могут быть вполне полезны. Потому я считаю что лучше юзать токен. По крайней мере, если у вас возникнут какие-то подозрения, не придётся менять пароль и засвеченную почту (номер телефона).


Ещё одним плюсом токена для параноиков является то, что он может быть выдан на определённый срок. В общем, юзайте лучше токены. Это немного сложнее, но безопаснее.


Как получить токен авторизации для Standalone-приложения описано здесь. Вам (или пользователю приложения) нужно перейти по ссылке определённого вида, авторизоваться ВКонтакте (если вы это ещё не сделали), в открывшемся фрейме внимательно прочесть какие разрешения запрашивает приложение, выдать приложению доступ, и из перенаправленной ссылки вытащить токен авторизации.


Вот пример ссылки:


https://oauth.vk.com/authorize?client_id={ID приложения}&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=friends,photos ,audio,video,docs,notes,pages,status,wall,groups,messages,notifications,offline&response_type=token


Это запрос к сайту на выдачу токена авторизации для нашего Standalone-приложения. Разберём подробнее.


client_id={ID приложения} -- вместо {ID приложения} подставьте ID вашего приложения.

redirect_uri=https://oauth.vk.com/blank.html -- в случае Standalone-приложений ВКонтакте обязывает использовать именно такой адрес перенаправления.

scope=friends,photos ,audio,video,docs,notes,pages,status,wall,groups,messages,notifications,offline -- самое интересное. Это список запрашиваемых разрешений. Полный список возможных разрешений можно найти здесь.

Будьте крайне внимательны при составлении этого списка. Фактически, он определяет все возможности, доступные обладателю токена. Особо обратите внимание на последний параметр offline -- при его использовании будет выдан бессрочный токен авторизации.


После того, как юзер даст приложению доступ со страницы ВК, его перебросит на пустую страницу с URL вида


https://oauth.vk.com/blank.html#access_token={токен авторизации}


С некоторыми дополнительными параметрами. Для авторизации приложению необходим токен, стоящий в параметре access_token. Вам необходимо его вытащить.


После этого необходимо авторизоваться в самой программе. На сайте разработчика модуля приводится такой простой пример:


import vk

session = vk.Session(access_token='{токен авторизации}')

api = vk.API(session)


После этого у объекта api вы можете вызывать все методы, перечисленные на этой странице.


К примеру, написание первого поста:


api.wall.post(message = 'Hello, World!')


Приведёт к появлению на вашей стене текстового поста.


Лирическое отступление относительно токенов и добросовестности


Как видите, процедура получения токена довольно проста, а его наличие даёт практически неограниченный контроль над страницей пользователя (практически такой же, как и с веб-интерфейса).


Естественно, это накладывает определённые требования к добросовестности пользователей. Любой из вас может обмануть доверчивого друга или соседа, прислав ему ссылку и попросив скопировать ответ (хотя на странице-редиректе и стоит напоминание о том, что ссылку с токеном нельзя никому присылать) либо получив на короткое время доступ к незапароленному компьютеру.


Притом после получения токена с неограниченным сроком годности, его можно использовать для скрытого чтения чужих сообщений, накрутки лайков, общения в соцсети от чужого имени и прочих противоправных действий.


Я искренне надеюсь что вы не станете так делать.


Продолжим.


Написание простейшей программы с использованием API


Давайте напишем какую-нибудь полезную программу, использующую API ВКонтакте.


Вот пример такой программы, предназначенной для своевременного получения обновлений сообщений (к сожалению, после сохранения поста всё форматирование пропадает, потому вместо символов табуляции я буду использовать escape-последовательность \t):


import vk

import time

import SendEmail


def searchForUser(user_list, ID):

\tfor user in user_list:

\t\tif type(user) is int:

\t\t\tcontinue

\t\tif user['uid'] == ID:

\t\t\treturn user['first_name'] + ' ' + user['last_name'] + '\n'


def checkMessages(message_list):

\tIDS = []

\tfor message in message_list:

\t\tif type(message) is int:

\t\t\tcontinue

\t\tif message['read_state'] == 0:

\t\t\tif 'chat_id' not in message:

\t\t\t\tIDS.append(str(message['uid']))

\tuser_list = api.users.get(user_ids = ','.join(IDS))

\ttext = ''

\tfor message in message_list:

\t\tif type(message) is int:

\t\t\tcontinue

\t\tif message['read_state'] == 0:

\t\t\tif 'chat_id' not in message:

\t\t\t\ttext = text + searchForUser(user_list, message['uid']) + message['body'] + '\n'

\t\t\telse:

\t\t\t\ttext = text + 'Сообщение из чата\n' + message['body'] + '\n'

\tprint(text)

\treturn text


session = vk.Session(access_token = '{токен авторизации}')

api = vk.API(session)


while True:

\tmessage = api.messages.get(time_offset = 0)

\tif len(message) != 1 and message[1]['read_state'] == 0:

\t\tSendEmail.sendEMail(checkMessages(message))

\telse:

\t\tprint('No new messages!')

\t\tSendEmail.sendEMail('No new messages!')

\t\ttime.sleep(600)


Разберём построчно что делает этот код.


В первых трёх строчках мы импортируем необходимые нам модули. Модуль time используется для того, чтобы отправлять процесс в сон. Модуль SendEmail -- это пользовательский модуль, предназначенный для отправки сообщений на определённый ящик.


Функция searchForUser(user_list, ID) ищет пользователя по его ID в списке user_list объектов user. Когда она его находит, то возвращает строку с именем и фамилией юзера. Проверка на тип сделана т.к. API ВКонтакте частенько возвращает первым элементом списка объектов длину этого списка.


Фунция checkMessages(message_list) просматривает список сообщений (опять же, пропуская элемент списка, содержащий число сообщений в списке) и формирует список из ID тех юзеров, сообщения которых ещё не прочитаны. Далее по этому списку ID у API запрашивается список юзеров. И наконец потом формируется единая строка, в которой через строчку указан отправитель (полученный функцией searchForUser(user_list, ID)) и текст его сообщения.

Если сообщение был отправлено из чата, то это дополнительно указывается.


И наконец основная часть программы. Сначала мы авторизуемся (токен можно записать прямо в Пайтоновский файл либо читать из текстового файла), затем в бесконечном цикле делаем следующее:

1) Проверяем, есть ли сообщения и прочтено ли последнее сообщение

2) Если есть, то вытаскиваем функцией checkMessages(message_list) строку вида


Юзер Юзеров

Сообщение от юзера 1

Юзер Юзеров

Сообщение от юзера 2

Другой Юзер Юзеров

Сообщение от юзера 1


И отправляем её себе на Email функцией SendEmail.sendEMail(text). Вместо отправки на почту можно выводить сообщение в консоль или записывать в файл.


2а) Если сообщений не было, то отправляем уведомление об этом (его цель, в основном, дать вам понять что программа не вылетела из-за какого-нибудь эксепшена).

3) Вызовом time.sleep(600) ждём ещё 10 минут.


Естественно, эта простенькая программа не является верхом совершенства. Изредка вызов API может приводить к поднятию эксепшена, что в данном случае попросту валит всю программу. Кроме того, приложение никак не запоминает что оно уже отправило вам уведомление о неких сообщениях, т.е. если вы не прочтёте новые сообщения, оно вас снова уведомит. И снова. И так до тех пор, пока в очередном вызове не вылетит эксепшен.


Если вы планируете писать своё приложение, обращайте также внимание на ограничения по частоте запросов к API (в конце страницы).


Всем спасибо за внимание, до новых встреч!

Показать полностью 4
Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите