WeatherInfoMySQL, API2 | Показывает погоду с сайта gismeteo.ru |
Здравствуйте, гость ( Вход | Регистрация )
WeatherInfoMySQL, API2 | Показывает погоду с сайта gismeteo.ru |
24.5.2009, 20:48
Сообщение
#1
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Название скрипта: WeatherInfoMySQL
Версия скрипта: 1.0 RC1 Версия API: API2 Автор: Wariner Примечание: Скрипт основывается на скрипте Weather Info Script автора D-Light(перевод под API 2: Fodin) Возможности: v 1.0 RC1 - Хранит коды всех городов в БД - Выводит погоду по названию города введённого из меню - При запросе погоды записывает её в БД и хранит до времени обновления Для начала работы со скриптом надо загнать бэкап БД с кодами городов из файла weather_CodeCity.xml, а так же установить библиотеку сокетов Скачать PS: скрипт особо не тестировал! Пробуйте пишите. + показалось что с такой базой начало что то подтормаживать
Прикрепленные файлы
weather_CodeCity.rar ( 296.35 килобайт )
Кол-во скачиваний: 380
WeatherInfoMySQL.lua ( 7.08 килобайт ) Кол-во скачиваний: 299 |
|
|
24.5.2009, 21:19
Сообщение
#2
|
|
Я коварный Санта Клаус Группа: Пользователи Сообщений: 523 Регистрация: 4.11.2008 Из: Саратов Пользователь №: 985 Спасибо сказали: 54 раза |
.xml файл как загнать в бд при помощи mysql administrator?
|
|
|
24.5.2009, 23:03
Сообщение
#3
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
Код 24.05.2009 22:24:40 - /etc/ptokax/scripts/meteo.lua:65: bad argument #2 to 'format' (string expected, got nil) Это, оно ошу пропускает. Надо поправить. Чтоб писало, что нет такого города, если опечатка. Потом - меню стоит вывести тоже в начало, чтоб погоду мона было для города названичть. ну и ктоме того - оно как то не очень показывает :( Очень проши сохранить базу с кодами в виде sql! А то ваще, капец. phpMyAdmin тока его и импортирует :( weather_CodeCity.rar ( 41.8 килобайт ) Кол-во скачиваний: 82 вот! Перегнал из xml в csv! Теперь это можно экспортировать в таблицу через phpMyAdmin. |
|
|
24.5.2009, 23:17
Сообщение
#4
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
перезалил базу в первом посту(просто не догадался сразу в архив запхать а так форум не загружал)
меняем 65 строку на Код local sEr = ("%s %s"):format(sCmd, sCityName) а эту надпись Код Core.SendToUser(tUser,("<%s> Произошла ошибка в тексте запроса! Команда не будет выполнена! Сообщите администратору!"):format(sBot)) такого города нет в базе! насчёт меню имеется ввиду для одного города или нескольких выбранных? PS: я предупреждаю ещё раз скрипт очень сырой!!! |
|
|
24.5.2009, 23:50
Сообщение
#5
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Смысла в коде мало:
Код local sEr = ("%s %s"):format(sCmd, sCityName) Сейчас объясню почему. Метод format используется для того, чтобы избежать выделения памяти под лишний мусор, в остальных случаях выстрее будет работать оператор конкатенации. В данном случае лучше использовать оператор, так как под переменные sCmd и sCityName память уже выделена, в дополнении к этому память выделится под строку "%s %s", однако если написать так: Код sCmd.." "..sCityName то в этом случае под переменные sCmd и sCityName память также уже выделилась, и выделится ещё под строку " ".Поэтому, в данном случае, разницы в выделении памяти нет, однако операторы всегда выполняются быстрее, чем вызовы функции. Поэтому в данном случае лучше использовать конкатенацию. Приведу пример, в котором наоборот надо использовать метод. Код ("<%s> %s"):format(sNick, sMsg) Тут опять же память выделена под переменные sNick и sMsg, в довесок выделится под строку "<%s> %s". Если же в данном случае записать через конкатенацию, то получим:Код "<"..sNick.."> "..sMsg Память выделена под переменные sNick и sMsg, но кроме этого память выделится под 2 строки: "<" и "> ". Поэтому тут предпочтительнее использовать метод.Надеюсь понятно изложил? |
|
|
27.5.2009, 22:03
Сообщение
#6
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
В общем детектирую проблему - после некоторого времени работы скрипт пишет, что в базе нет таких городов. Перезапускаешь - все норм. Чудно как то.... Может коннект к базе теряется?
|
|
|
27.5.2009, 22:23
Сообщение
#7
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
да я замечаю некую странность, например если сделать два запроса большого количества инфы в короткое время скрипты выдают ошибки! Я не знаю почему так((( Ваши мнения?
|
|
|
27.5.2009, 22:34
Сообщение
#8
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Нужно смотреть что за ошибки
|
|
|
27.5.2009, 22:36
Сообщение
#9
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
нет ошибок просто проскакивает команда в чат а данные не выводятся! Т.е проблема в этом месте
Код local cur = con:execute(("SELECT * FROM `%sWeatherCity` WHERE `id_City` = (SELECT `id` FROM `%sCodeCity` WHERE `CityName` = '%s')"):dbformat(sPrefixTable,sPrefixTable,sCityName)) порой просто запрос не проходит(может конечно я не правильно выражаюсь) пришлось ввести после этого такую конструкцию Код if not cur then local sEr = ("%s %s"):format(sCmd, sCityName) con:execute(("INSERT INTO `%sErrors` (`Datetime`, `Error`) VALUES ('%s','%s')"):dbformat(sPrefixTable, os.date("%Y-%m-%d %H:%M:%S"), sEr)) Core.SendToUser(tUser,("<%s> Произошла ошибка в тексте запроса! Команда не будет выполнена! Сообщите администратору!"):format(sBot)) return true end думал может в запрос подставляется что то противопоказанное, но нет, всё впорядке. Может какой нибудь таймаут нужен? |
|
|
27.5.2009, 22:42
Сообщение
#10
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Она не может просто проскакивать, ведь в скрипте прописаны инструкции, которым должна удовлетворять команда. Если она проскакивает, то это означает, что либо в скрипте ошибка, либо скрипт отключен. Возможен второй вариант. Скрипт не успел обработать первый запрос, а ему уже поступил второй, второй запрос начинает выполняться параллельно первому...
|
|
|
27.5.2009, 22:54
Сообщение
#11
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
а два одновременно он выполнить не может? и если не может как это ограничить?
|
|
|
27.5.2009, 23:34
Сообщение
#12
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
По идее должен
|
|
|
28.5.2009, 6:15
Сообщение
#13
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
странно блин(((((((((((((((((
|
|
|
8.7.2009, 20:12
Сообщение
#14
|
|
Активный участник Группа: Пользователи Сообщений: 68 Регистрация: 26.8.2008 Из: Екатеринбург Пользователь №: 430 Спасибо сказали: 2 раза |
Это мне одному так сильно повезло или есть ещё кто-то, у кого в файле weather_CodeCity какие-то логи, причем мой блокнот не распознаёт кодировку русского языка
Зато чётко видны время, IP и ники Цитата (1,'2009-04-25','21:02:47','-=Wariner=-','127.0.0.1','1'), (2,'2009-04-25','21:02:48','-=Wariner=-','127.0.0.1','2'), (3,'2009-04-25','21:02:49','-=Wariner=-','127.0.0.1','3'), (4,'2009-04-25','21:04:33','-=Wariner=-','127.0.0.1','3'), (5,'2009-04-25','21:04:33','-=Wariner=-','127.0.0.1','4'), (6,'2009-04-25','21:04:34','-=Wariner=-','127.0.0.1','5'), (7,'2009-04-26','21:04:34','-=Wariner=-','127.0.0.1','6'), (8,'2009-04-26','21:04:34','-=Wariner=-','127.0.0.1',''), (9,'2009-04-26','20:03:07','-=Wariner=-','127.0.0.1','^_^'), (10,'2009-04-26','20:03:11','-=Wariner=-','127.0.0.1','>_<'), (11,'2009-04-26','20:03:16','-=Wariner=-','127.0.0.1',':пацталом:'), (12,'2009-04-26','20:04:22','-=Wariner=-','127.0.0.1','Молодцы мужики качественный хаб!!! (для админов):орден:'), (13,'2009-04-28','20:55:48','-=Wariner=-','127.0.0.1','!me ssssssssssssssssssssss'), (14,'2009-04-28','20:57:43','-=Wariner=-','127.0.0.1','[!+]me'), (15,'2009-04-28','21:01:24','-=Wariner=-','127.0.0.1','ghbdtn'), (16,'2009-04-28','21:01:36','-=Wariner=-','127.0.0.1','!me sssssssssssssssss'), (17,'2009-05-04','21:09:31','-=Wariner=-','10.2.100.240','1'), (18,'2009-05-04','21:09:32','-=Wariner=-','10.2.100.240','2'), (19,'2009-05-04','21:09:32','-=Wariner=-','10.2.100.240','3'), (20,'2009-05-04','21:09:54','[Slutkey]','10.3.20.202','Р˜Р»СЊСЏ РґР° ты гений'), (21,'2009-05-04','21:10:01','[Slutkey]','10.3.20.202','ты цифры знаешь'), (22,'2009-05-04','21:10:03','[Slutkey]','10.3.20.202','))))))))))'), (23,'2009-05-04','21:10:21','[Slutkey]','10.3.20.202','Р° РјС‹ только буквами РІ чате РґР° буквами'), (24,'2009-05-04','21:10:26','-=Wariner=-','10.2.100.240','лог проверял'), (25,'2009-05-04','21:21:10','BIMMERв„ў','10.8.2.244','=)'), (26,'2009-05-04','21:21:14','BIMMERв„ў','10.8.2.244','привет всем'), (27,'2009-05-04','21:21:58','[glu]XuTRbIu^','10.4.178.254','BIMMERв„ў: Р·РґРѕСЂРѕРІР°'), (28,'2009-05-04','21:22:03','BIMMERв„ў','10.8.2.244','3'), (29,'2009-05-04','21:22:04','BIMMERв„ў','10.8.2.244','2'), (30,'2009-05-04','21:22:04','BIMMERв„ў','10.8.2.244','1'), (31,'2009-05-04','21:47:40','[SoV]=RoD(1)K=','10.2.34.216','Люди,кто курсовые делает??'), (32,'2009-05-04','21:47:44','[SoV]=RoD(1)K=','10.2.34.216','РІ лс плиз'), (33,'2009-05-04','21:52:36','Dj.Mania','10.3.5.18','народ . есть Сѓ РєРѕРіРѕ нить новый комфорт..???'), [22:58] Синтаксис E:\Рабочий стол\0.4.1.1\scripts\WeatherInfoMySQL.lua:33: module 'luasql.mysql' not found: no field package.preload['luasql.mysql'] no file 'E:\Рабочий стол\0.4.1.1\luasql\mysql.lua' no file 'E:\Рабочий стол\0.4.1.1\libs\luasql\mysql.lua' no file 'E:\Рабочий стол\0.4.1.1\scripts\libs\luasql\mysql.lua' no file 'E:\Рабочий стол\0.4.1.1\luasql\mysql.dll' no file 'E:\Рабочий стол\0.4.1.1\libs\luasql\mysql.dll' no file 'E:\Рабочий стол\0.4.1.1\scripts\libs\luasql\mysql.dll' no file 'E:\Рабочий стол\0.4.1.1\luasql.dll' no file 'E:\Рабочий стол\0.4.1.1\libs\luasql.dll' no file 'E:\Рабочий стол\0.4.1.1\scripts\libs\luasql.dll' ============= Единственное что я понял из этого, что нет dll Да и ещё У гисметео сменились коды городов, может и не все, но код Екатеринбурга теперь не 28440 а 4517 Простите, что только информирую, но на активное участие нет времени :( |
|
|
8.7.2009, 20:21
Сообщение
#15
|
|
МЕДВЕД =) Группа: Пользователи Сообщений: 187 Регистрация: 6.8.2008 Пользователь №: 332 Спасибо сказали: 4 раза |
По поводу логов ничего не могу сказать, а по поводу ошибки вот:
ВАЖНО: ===> Прочитать перед использованием скриптов <=== |
|
|
9.7.2009, 9:37
Сообщение
#16
|
|
Активный участник Группа: Пользователи Сообщений: 68 Регистрация: 26.8.2008 Из: Екатеринбург Пользователь №: 430 Спасибо сказали: 2 раза |
По поводу логов ничего не могу сказать, а по поводу ошибки вот: ВАЖНО: ===> Прочитать перед использованием скриптов <=== у меня установлены библиотеки |
|
|
9.7.2009, 9:42
Сообщение
#17
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
[22:58] Синтаксис E:\Рабочий стол\0.4.1.1\scripts\WeatherInfoMySQL.lua:33: module 'luasql.mysql' not found: no field package.preload['luasql.mysql'] no file 'E:\Рабочий стол\0.4.1.1\luasql\mysql.lua' no file 'E:\Рабочий стол\0.4.1.1\libs\luasql\mysql.lua' no file 'E:\Рабочий стол\0.4.1.1\scripts\libs\luasql\mysql.lua' no file 'E:\Рабочий стол\0.4.1.1\luasql\mysql.dll' no file 'E:\Рабочий стол\0.4.1.1\libs\luasql\mysql.dll' no file 'E:\Рабочий стол\0.4.1.1\scripts\libs\luasql\mysql.dll' no file 'E:\Рабочий стол\0.4.1.1\luasql.dll' no file 'E:\Рабочий стол\0.4.1.1\libs\luasql.dll' no file 'E:\Рабочий стол\0.4.1.1\scripts\libs\luasql.dll' судя по этим ошибкам нет! или у тебя нет файла mysql.lua |
|
|
9.7.2009, 12:03
Сообщение
#18
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Какой mysql.lua?
По этим ошибкам могу на 200% сказать, что у не установлены либы! Цитата no file 'E:\Рабочий стол\0.4.1.1\libs\luasql\mysql.dll' no file 'E:\Рабочий стол\0.4.1.1\libs\luasql.dll' То, что они установлены можешь говорить сколько угодно, а ошибки показывают, что ptokax не может их обнаружить по указанным путям! |
|
|
9.7.2009, 13:51
Сообщение
#19
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
Какой mysql.lua? Я догадываюсь, что т.к. это порт ил линукса, то оно ищет mysql.lua (это файл вот такого содержания, пример от luamd5) Код ---------------------------------------------------------------------------- -- $Id: md5.lua,v 1.4 2006/08/21 19:24:21 carregal Exp $ ---------------------------------------------------------------------------- local core = require"md5.core" local string = require"string" module ("md5") ---------------------------------------------------------------------------- -- @param k String with original message. -- @return String with the md5 hash value converted to hexadecimal digits function sumhexa (k) k = core.sum(k) return (string.gsub(k, ".", function (c) return string.format("%02x", string.byte(c)) end)) end Кроме того, в таких файлах попадаются указания на то, где лежит необхидимая библиотека |
|
|
9.7.2009, 16:12
Сообщение
#20
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
При чём тут линукс?
По ошибкам можно понять, что скрипт ищет dll либы, в линуксе он бы искал сошки. никакого файла mysql.lua нету, не было и не будет! Не сбивай с толку людей. Нужно правильно положить нужные либы в нужные папки. |
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
От: WeatherInfoMySQL От темы с ID: 1975 |
0 | mariner | 4 533 | 26.5.2009, 19:45 Посл. сообщение: mariner |
|
Сейчас: 27.11.2024, 2:09 |