myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему

> WeatherInfoMySQL, API2 | Показывает погоду с сайта gismeteo.ru

Теги
Wariner
сообщение 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 килобайт ) Кол-во скачиваний: 379
Прикрепленный файл  WeatherInfoMySQL.lua ( 7.08 килобайт ) Кол-во скачиваний: 297
 
Go to the top of the page
+Quote Post
Otshelnik-Fm
сообщение 24.5.2009, 21:19
Сообщение #2


Я коварный Санта Клаус
******

Группа: Пользователи
Сообщений: 523
Регистрация: 4.11.2008
Из: Саратов
Пользователь №: 985
Спасибо сказали: 54 раза




.xml файл как загнать в бд при помощи mysql administrator?
Go to the top of the page
+Quote Post
mariner
сообщение 24.5.2009, 23:03
Сообщение #3


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 874
Регистрация: 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.
Go to the top of the page
+Quote Post
Wariner
сообщение 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: я предупреждаю ещё раз скрипт очень сырой!!!
Go to the top of the page
+Quote Post
Setuper
сообщение 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 строки: "<" и "> ". Поэтому тут предпочтительнее использовать метод.


Надеюсь понятно изложил?
Go to the top of the page
+Quote Post
mariner
сообщение 27.5.2009, 22:03
Сообщение #6


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 874
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




В общем детектирую проблему - после некоторого времени работы скрипт пишет, что в базе нет таких городов. Перезапускаешь - все норм. Чудно как то.... Может коннект к базе теряется?
Go to the top of the page
+Quote Post
Wariner
сообщение 27.5.2009, 22:23
Сообщение #7


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




да я замечаю некую странность, например если сделать два запроса большого количества инфы в короткое время скрипты выдают ошибки! Я не знаю почему так((( Ваши мнения?
Go to the top of the page
+Quote Post
Setuper
сообщение 27.5.2009, 22:34
Сообщение #8


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Нужно смотреть что за ошибки
Go to the top of the page
+Quote Post
Wariner
сообщение 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

думал может в запрос подставляется что то противопоказанное, но нет, всё впорядке. Может какой нибудь таймаут нужен?
Go to the top of the page
+Quote Post
Setuper
сообщение 27.5.2009, 22:42
Сообщение #10


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Она не может просто проскакивать, ведь в скрипте прописаны инструкции, которым должна удовлетворять команда. Если она проскакивает, то это означает, что либо в скрипте ошибка, либо скрипт отключен. Возможен второй вариант. Скрипт не успел обработать первый запрос, а ему уже поступил второй, второй запрос начинает выполняться параллельно первому...
Go to the top of the page
+Quote Post
Wariner
сообщение 27.5.2009, 22:54
Сообщение #11


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




а два одновременно он выполнить не может? и если не может как это ограничить?
Go to the top of the page
+Quote Post
Setuper
сообщение 27.5.2009, 23:34
Сообщение #12


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




По идее должен
Go to the top of the page
+Quote Post
Wariner
сообщение 28.5.2009, 6:15
Сообщение #13


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




странно блин(((((((((((((((((
Go to the top of the page
+Quote Post
Al-j®
сообщение 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 beat_brick.gif

Да и ещё
У гисметео сменились коды городов, может и не все, но код Екатеринбурга теперь не 28440 а 4517
Простите, что только информирую, но на активное участие нет времени :(
Go to the top of the page
+Quote Post
fixx
сообщение 8.7.2009, 20:21
Сообщение #15


МЕДВЕД =)
****

Группа: Пользователи
Сообщений: 187
Регистрация: 6.8.2008
Пользователь №: 332
Спасибо сказали: 3 раза




По поводу логов ничего не могу сказать, а по поводу ошибки вот:
ВАЖНО: ===> Прочитать перед использованием скриптов <===
Go to the top of the page
+Quote Post
Al-j®
сообщение 9.7.2009, 9:37
Сообщение #16


Активный участник
***

Группа: Пользователи
Сообщений: 68
Регистрация: 26.8.2008
Из: Екатеринбург
Пользователь №: 430
Спасибо сказали: 2 раза




Цитата(fixx @ 8.7.2009, 23:21) *
По поводу логов ничего не могу сказать, а по поводу ошибки вот:
ВАЖНО: ===> Прочитать перед использованием скриптов <===


у меня установлены библиотеки
Go to the top of the page
+Quote Post
Wariner
сообщение 9.7.2009, 9:42
Сообщение #17


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




Цитата(Al-j® @ 8.7.2009, 21:12) *
[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
Go to the top of the page
+Quote Post
Setuper
сообщение 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 не может их обнаружить по указанным путям!
Go to the top of the page
+Quote Post
mariner
сообщение 9.7.2009, 13:51
Сообщение #19


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 874
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




Цитата(Setuper @ 9.7.2009, 13:03) *
Какой 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


Кроме того, в таких файлах попадаются указания на то, где лежит необхидимая библиотека big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 9.7.2009, 16:12
Сообщение #20


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




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

никакого файла mysql.lua нету, не было и не будет! Не сбивай с толку людей.

Нужно правильно положить нужные либы в нужные папки.
Go to the top of the page
+Quote Post

2 страниц V   1 2 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts От: WeatherInfoMySQL
От темы с ID: 1975
0 mariner 2 277 26.5.2009, 19:45 Посл. сообщение: mariner

 



RSS Сейчас: 10.12.2018, 21:44