Видео ролики бесплатно онлайн

Смотреть бабушки видео

Официальный сайт pharma-24 24/7/365

Смотреть видео бесплатно

smacker 10.02.2010 21:37

СкриптыМои скрипты

Хочу поделиться несколькими скриптами, которыми пользуюсь сам. Тем более, что у нас неделя скриптов

1. Прогноз погоды от gismeteo.ru

forecast.rb:

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#coding: utf-8
require 'net/http'
require 'xmlsimple'
require 'cgi'
require 'iconv'

tod = < 'Ночь', 'Утро', 'День', 'Вечер' >
cloudiness = < 'ясно', 'малооблачно', 'облачно', 'пасмурно' >
precipitation = { 4 =&gt; 'дождь', 5 =&gt;'ливень', 6 =&gt; 'снег', 7 =&gt; 'снег',
8 =&gt; 'гроза', 9 =&gt; 'нет данных', 10 =&gt; 'без осадков' }

res = Net::HTTP.get(URI.parse 'http://informer.gismeteo.ru/xml/28440_1.xml')
xml = XmlSimple.xml_in(res, { 'ForceArray' =&gt; false })

city_name = Iconv.iconv('utf8', 'cp1251', CGI.unescape(xml<'REPORT'><'TOWN'><'sname'>))
xml<'REPORT'><'TOWN'><'FORECAST'>.each do |forecast|
datetime = Time.utc(forecast<'year'>, forecast<'month'>, forecast<'day'>, forecast<'hour'>)
strdate = datetime.strftime('%d %b %A')
puts "#{strdate} #{tod<integer><'tod'>)>}"
puts "Температура: #{forecast<'TEMPERATURE'><'min'>}..#{forecast<'TEMPERATURE'><'max'>}"
puts "Осадки: #{cloudiness</integer><integer><'PHENOMENA'><'cloudiness'>)>} #{precipitation</integer><integer><'PHENOMENA'><'precipitation'>)>}"
puts
end</integer>



Результат работы скрипта кладётся в forecast.txt
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
10 Feb Wednesday Вечер
Температура: -19..-21
Осадки: пасмурно без осадков

11 Feb Thursday Ночь
Температура: -16..-18
Осадки: пасмурно без осадков

11 Feb Thursday Утро
Температура: -14..-16
Осадки: пасмурно без осадков

11 Feb Thursday День
Температура: -12..-14
Осадки: пасмурно без осадков


Ну а этот файлик уже показывает мой awesome.

2. Температура за окном в данный момент: weather_gismeteo.sh
С того же gismeteo достаю текущую температуру.

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash

CITY=$1

ping -c 1 -W 15 gismeteo.ru > /dev/null
if < $? -ne 0 >; then
echo "N/A"
exit 1
fi

wget -q -O /var/tmp/gismeteo_weather http://gismeteo.ru/city/daily/$CITY/0
DIG=`cat /var/tmp/gismeteo_weather | grep 'div class="deg"' | sed -r 's/<div class="deg">(.<0-9>+).*/\1/g' | tr -s \ `
echo "$DIG C"
rm /var/tmp/gismeteo_weather



Дальше ссылки на описание скриптов в моём блоге:

3. Rss с drive2.ru
4. Отправка sms через mail.ru агент

Надеюсь, кому-нибудь пригодится.


Тэги: скрипты
+ 12 -
Похожие Поделиться

digiwhite 10.02.2010 21:45 #
+ 0 -
Под cut, please :)
leonder 10.02.2010 23:07 #
+ 0 -
4. Отправка sms через mail.ru агент

Распаковал архив в ~/.local/
Сделал ссылку ln -s /home/leonder/.local/sms_send/send.py /home/leonder/bin/sendsms
Выполняю: smssend "[email protected]", "mypassmailru", "+71234567890", u"Text of test sms"
from: can't read /var/mail/optparse
/home/leonder/bin/smssend: line 7: syntax error near unexpected token `('
/home/leonder/bin/smssend: line 7: `parser = OptionParser()'
Такое впечатление, что автор скрипта ожидал подгружения какого-то другого парсера... Я вообще слабо понимаю, что там как, так что прошу пояснить.
smacker 10.02.2010 23:18 #
+ 2 -
Добавьте в send.py строчку
#!/usr/bin/python
если хотите запускать его напрямую. Потому что сейчас у вас он исполняется как bash скрипт. Или запускайте как python send.py

А optionparse это встроенный модуль питона.
leonder 10.02.2010 23:38 #
+ 0 -
Что ж вы так, саим-то не вписали... Спасибо, заработало. Странно только, сообщение дошло (мтс, +7910...), но в консоль кучу текста высыпало:
Traceback (most recent call last):
File "/usr/lib/python2.6/asyncore.py", line 101, in readwrite
obj.handle_read_event()
File "/usr/lib/python2.6/asyncore.py", line 416, in handle_read_event
self.handle_read()
File "/home/leonder/.local/sms_send/mrimsmssender/core.py", line 149, in handle_read
self.__parse_data()
File "/home/leonder/.local/sms_send/mrimsmssender/core.py", line 170, in __parse_data
self._parse_raw_packet(self._header,self._body)
File "/home/leonder/.local/sms_send/mrimsmssender/core.py", line 196, in _parse_raw_packet
self._workup_packet(mmp_packet)
File "/home/leonder/.local/sms_send/mrimsmssender/core.py", line 369, in _workup_packet
_ack<'ackf'>(status, **_ack<'acka'>)
KeyError: 'ackf'
ok!

leonder 11.02.2010 00:01 #
+ 0 -
А ещё не помешало бы доработать скрипт, вообще как, планируете?

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

Запоминание авторизации. Я для себя сделал alias sendsms='sendsms -l "email" -p "password"'.

Может быть, gui? Посадить програму в трэй, чтоб как местный переводчик гугловский на питоне?

Создайте пожалуйста отдельную тему в Howto`s про sms.
smacker 11.02.2010 00:25 #
+ 2 -
исходные тексты доступны - используйте, пишите.
send.py это просто пример показывающий как использовать библиотеку.
Лично я подключаю её к своим скриптам, которым нужно меня о чём-то уведомлять.

О чём писать в howto? О том как скрипт работает? По протоколу mail.ru агента, который доступен и который вы и так в сети можете почитать. Именно смс отправляются с помощью недокументированных функций. Практически весь код взят из mrim транспорта.
Это не единственный способ отправлять смс. Можно купить у сервис провайдеров нное колличество смс и отправлять через их API.
Можно отправлять через сайты операторов. Но там капча. Так что придётся её вводить либо руками, либо написать\где-то взять хороший алгоритм для её взлома.
Ну и наконец можно подключить старый сотовый телефон к компьютеру и отправлять смс с его помощью.
Если нужно отправлять смски только на свой номер, то можно это делать используя уведомления по смс в гугл календаре.
Все способы хорошо описаны в гугле.

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн