myDC.ru

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

 
 
Ответить в данную темуНачать новую тему

> скрипт рекордов АПИ1, изменить отображение информации

Теги
Нет тегов для показа
степашка
сообщение 26.4.2009, 20:53
Сообщение #1


Продвинутый участник
****

Группа: Пользователи
Сообщений: 133
Регистрация: 18.9.2008
Из: Москва
Пользователь №: 555
Спасибо сказали: 5 раз




здравствуйте. есть скрипт рекордов. работает безупречно. есть только одно нарекание. отображает рекорды по-идиотски:
-------------------------------------------------------------------
Рекорд Значение Дата - Время
-------------------------------------------------------------------
Шара 287 ТБ 04/26/09 18:13:24
Юзеры 2298 чел. 04/26/09 18:13:24
Макс. шара ((I)))Berserk (14.0 ТБ)
-------------------------------------------------------------------
т.е. дата отображается как месяц - число - год. возможно ли сделать чтоб отображалось так?:
Шара 287 ТБ 26 апреля 2009; 18:13:24
Юзеры 2298 чел. 26 апреля 2009; 18:13:24
Я читал про захваты и прочее, но не понял ничего ))) там сложно слишком для меня. Спасибо кто поможет
Прикрепленные файлы
Прикрепленный файл  RecordBot.lua ( 8.79 килобайт ) Кол-во скачиваний: 10
 
Go to the top of the page
+Quote Post
district
сообщение 27.4.2009, 0:05
Сообщение #2


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Можно вот в таком стандартном формате : 24 Jan 2009 22:31
Без секунд :
Код
os.date("%d %b %Y %H:%M")

С секундами :
Код
os.date("%d %b %Y %H:%M:%S")


Код
os.date()
меняем на форматированную дату, там всего
два раза, если не ошибаюсь, в скрипте встречается.
Go to the top of the page
+Quote Post
степашка
сообщение 27.4.2009, 8:14
Сообщение #3


Продвинутый участник
****

Группа: Пользователи
Сообщений: 133
Регистрация: 18.9.2008
Из: Москва
Пользователь №: 555
Спасибо сказали: 5 раз




спасибо щас попробую )) \\\ спасибо всё работает. прилагаю если кому понадобится ) \\\
а на русском месяцы реально сделать? пытался прикрутить из ТаймДата-бота (прилагаю), но постоянные ошибки или вообще ничего не показывает
Прикрепленные файлы
Прикрепленный файл  RecordBot.lua ( 8.83 килобайт ) Кол-во скачиваний: 6
Прикрепленный файл  TimeDateBot.lua ( 4.76 килобайт ) Кол-во скачиваний: 5
 
Go to the top of the page
+Quote Post
district
сообщение 4.5.2009, 5:40
Сообщение #4


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Самым примитивным решением, видимо, будет аргументировать полученную строку даты в функцию замены импортных названий месяцев на русские названия. Например, так :
вместо
Код
os.date("%d %b %Y %H:%M")
пишем
Код
GsubMonth(os.date("%d %b %Y %H:%M"))
и добавляем функцию :
Код
function GsubMonth(s)
s=s:gsub("Jan","Января"); s=s:gsub("Mar","Марта"); s=s:gsub("May","Мая")
s=s:gsub("Jun","Июня"); s=s:gsub("Jul","Июля"); s=s:gsub("Aug","Августа")
s=s:gsub("Feb","Февраля"); s=s:gsub("Sep","Сентября"); s=s:gsub("Dec","Декабря")
s=s:gsub("Oct","Октября"); s=s:gsub("Nov","Ноября"); s=s:gsub("Apr","Апреля")
return s
end
Go to the top of the page
+Quote Post
Setuper
сообщение 4.5.2009, 13:40
Сообщение #5


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

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




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

Лучше сделать локальную таблицу с месяцами:

Код
local sM, tMonth = "%b", {
  Jan = "Января",
  Feb = "Февраля",
  Mar = "Марта",
  Apr = "Апреля",
  May = "Мая",
  Jun = "Июня",
  Jul = "Июля",
  Aug = "Августа",
  Sep = "Сентября",
  Oct = "Октября",
  Nov = "Ноября",
  Dec = "Декабря"
}

function GetMonth()
  return tMonth[os.date(sM)]
end


Тогда использование будет таким:
Код
os.date("%d %%s %Y %H:%M"):format(GetMonth())
Go to the top of the page
+Quote Post
district
сообщение 4.5.2009, 15:00
Сообщение #6


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Setuper
А где можно почитать об использовании format ?
Go to the top of the page
+Quote Post
Setuper
сообщение 4.5.2009, 15:28
Сообщение #7


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

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




В данном случае метод формат используется в качестве оптимизации и сокращения выделяемой памяти.
Можно было написать так:
Код
os.date("%d "..GetMonth().." %Y %H:%M")
но если мы так напишем, то 1 байт выделится под строку "%d ", и 1 байт выделится под строку " %Y %H:%M", после этого они конкатенацией соединятся. В итоге получаем выделение памяти под строки в размере 2 байт - это мусор, который надо будет позже убирать.

В случае если же мы напишем так:
Код
os.date("%d %%s %Y %H:%M"):format(GetMonth())
то выделится всего 1 байт под строку "%d %%s %Y %H:%M", после чего в этой строке произойдёт замена %s на значение нашей функции GetMonth. В итоге получаем выделение памяти под строки в размере 1 байта.

В общем метод format, в данном случае, используется для форматирования строки, в частности для замены %s на то, что мы хотим, с целью сокращения выделения памяти под мусор.

И ещё... Так как перед форматированием строки мы используем функцию os.date, которая также работает с переменными содержащими знак процента, то если написать не %%s, а %s, то функция os.date преобразует этот %s в своё выражение, для того, чтобы этого не произошло нам нужно, чтобы на выходе после функции os.date знак процента сохранился, то есть нам надо экранировать знак процента, что я и делаю тут.

Почитать про format можно тут: http://www.lua.ru/doc/5.4.html
Go to the top of the page
+Quote Post
степашка
сообщение 4.5.2009, 18:55
Сообщение #8


Продвинутый участник
****

Группа: Пользователи
Сообщений: 133
Регистрация: 18.9.2008
Из: Москва
Пользователь №: 555
Спасибо сказали: 5 раз




весьма благодарен за ваше участие )))
однако пытался вставить то что вы тут написали, результат ноль.
можно сюда скрипт полностью? это только вам легко понять сии премудрости (((
Go to the top of the page
+Quote Post
skonda
сообщение 8.5.2009, 22:13
Сообщение #9


Продвинутый участник
****

Группа: Пользователи
Сообщений: 136
Регистрация: 16.9.2008
Пользователь №: 545
Спасибо сказали: 1 раз




Цитата(степашка @ 4.5.2009, 19:55) *
весьма благодарен за ваше участие )))
однако пытался вставить то что вы тут написали, результат ноль.
можно сюда скрипт полностью? это только вам легко понять сии премудрости (((
присоединяюсь к просьбе. у кого после всех этих преобразований есть рабочий скрипт под API1 просьба выложить
Go to the top of the page
+Quote Post
district
сообщение 9.5.2009, 3:41
Сообщение #10


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Ну что же вы так, ребята? Задачка то простая совсем - готовое решение в скрипт вписать. Каждый одминчег должен стать Всадником Птокапокалипсиса, и Lua Reference Manual - Библия Его, и NotePad ++ - копье Его big_smile1.gif
Приписал решение Setuper'a в выложенный скрипт, пользуйтесь...
Попутно вот, смотрите. При показе в гл. чате рекорды форматируются. В зависимости от конкретных текщих значений может потребоваться добавление-удаление символов табуляции ( \t) в строках
Код
msg = msg.."\tШара\t\t"..DoShareUnits((Record.Share)).." \t\t\t"..Record.tShare.."\r\n"
msg = msg.."\tЮзеры\t\t"..Record.Users.." чел.\t\t\t"..Record.tShare.."\r\n"
msg = msg.."\tМакс. шара\t"..Record.maxSharer.." "..DoShareUnits((Record.maxShare))..")\r\n"

и соответственно добавление - удаление количества символов дефиса в разделителях (border)
Код
local msg, border = "", string.rep ("-", 80)

При проверке получилось криво, поэтому немного подровнял, см. картинку. Но то что на картинке - это применительно к показу исключительно конкретных, текущих значений. Поэтому надо осваивать такие мелочи, и не теряться ;)
Прикрепленные файлы
Прикрепленный файл  RecordBot_date_.lua ( 9.17 килобайт ) Кол-во скачиваний: 10
Прикрепленный файл  рекорды.PNG ( 3.13 килобайт ) Кол-во скачиваний: 28
 
Go to the top of the page
+Quote Post
skonda
сообщение 9.5.2009, 10:28
Сообщение #11


Продвинутый участник
****

Группа: Пользователи
Сообщений: 136
Регистрация: 16.9.2008
Пользователь №: 545
Спасибо сказали: 1 раз




спасибо за скрипт. кстати в скрипте есть ошибка, как ее исправить?

в файле record данные
Record = {
["Share"] = 36838321281645,
["maxSharer"] = "Strannik",
["tShare"] = "09 Марта 2009 20:20",
["maxShare"] = 1554544152800,
["Users"] = 273,
["tUsers"] = "09 Марта 2009 20:57",
}
А отображается :

--------------------------------------------------------------------------------
Рекорд Значение Дата - Время
--------------------------------------------------------------------------------
Шара 33.5 ТБ 09 Марта 2009 20:20
Юзеры 273 чел. 09 Марта 2009 20:20
Макс. шара Strannik (1.4 ТБ)
--------------------------------------------------------------------------------

То есть время пика шары и пика юзеров всегда совпадает, хотя на самом деле это не так.
Прикрепленные файлы
Прикрепленный файл  record.rar ( 3 килобайт ) Кол-во скачиваний: 5
 
Go to the top of the page
+Quote Post
Setuper
сообщение 9.5.2009, 11:20
Сообщение #12


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

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




А самому догадаться никак?
Строка 48:
Код
msg = msg.."\tЮзеры\t\t"..Record.Users.." чел.\t\t\t"..Record.tUsers.."\r\n"
Go to the top of the page
+Quote Post
district
сообщение 9.5.2009, 11:51
Сообщение #13


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Точно, был такой косячок. В отчет для даты рекорда шары и даты рекорда юзеров выводилась одна и та же дата - дата рекорда по шаре. Давно этим скриптом уже не пользуюсь, исправил да и забыл что такая ошибка была... Переприкреплю, на всякий случай ;)
Go to the top of the page
+Quote Post
skonda
сообщение 9.5.2009, 12:25
Сообщение #14


Продвинутый участник
****

Группа: Пользователи
Сообщений: 136
Регистрация: 16.9.2008
Пользователь №: 545
Спасибо сказали: 1 раз




Цитата(Setuper @ 9.5.2009, 12:20) *
А самому догадаться никак?
Строка 48:
Код
msg = msg.."\tЮзеры\t\t"..Record.Users.." чел.\t\t\t"..Record.tUsers.."\r\n"

пробовал, искал, но не нашел где править, т к не разбираюсь в скриптах.
Go to the top of the page
+Quote Post
Wariner
сообщение 11.5.2009, 18:01
Сообщение #15


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

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




написали же тебе 48 строка!!! Если вдруг ты ищешь поиском, то не копируй всю строку, ибо здесь приведён уже окончательный вариант(на то что надо исправить)!
Go to the top of the page
+Quote Post
skonda
сообщение 11.5.2009, 19:05
Сообщение #16


Продвинутый участник
****

Группа: Пользователи
Сообщений: 136
Регистрация: 16.9.2008
Пользователь №: 545
Спасибо сказали: 1 раз




Цитата(Wariner @ 11.5.2009, 19:01) *
написали же тебе 48 строка!!! Если вдруг ты ищешь поиском, то не копируй всю строку, ибо здесь приведён уже окончательный вариант(на то что надо исправить)!
скрипт давно исправлен и работает, то что я ответил с цитированием означает то что я ответил цитатой, а не то, что я не понял как править, так что твой ор неуместен.
Go to the top of the page
+Quote Post
Wariner
сообщение 11.5.2009, 19:21
Сообщение #17


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

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




тут не все экстрасенсы! если вопрос снят надо было так и сказать!

PS: остроту ума проявляй в программинге а не в сообщениях!
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new Topic has attachmentsНерабочий скрипт ВИПа по шаре
16 Damaks 20 047 23.2.2023, 7:16 Посл. сообщение: mod
No new Topic has attachmentsMagneto - Бесплатный Скрипт Портала Обмена Dc-ссылками Для Локальной Сети
26 UserSide 41 239 27.8.2019, 11:01 Посл. сообщение: CyberGhost404
No New Posts От: Новогодний Скрипт
От темы с ID: 871
0 Евгений 3 182 15.10.2018, 21:44 Посл. сообщение: Евгений
No New Posts А бывают такой скрипт бота?
Скрипт который создает виртуалных юзеров, но с реальными шарами
5 MarkDark 8 136 26.12.2017, 10:47 Посл. сообщение: мамин_парень
No New Posts Скрипт: Бот который отвечает в лс
4 мамин_парень 7 817 11.11.2017, 5:57 Посл. сообщение: мамин_парень
No New Posts как сделать вот этот скрипт
12 мамин_парень 12 575 13.9.2017, 10:51 Посл. сообщение: dimetro
No New Posts Topic has attachmentsИщу скрипт переадресации (redirect)
Переадресация интернет-юзеров
3 AS_Com 7 214 27.8.2017, 8:05 Посл. сообщение: Ksan
No New Posts Topic has attachmentsСкрипт Thunder.lua
7 Евген76 15 315 9.8.2017, 11:48 Посл. сообщение: Ksan
No New Posts Требуется скрипт
Нужен скрипт запрета на подключение
5 Nikolaevich 9 499 20.8.2016, 19:52 Посл. сообщение: Ksan
No new ВАЖНО: Topic has attachmentsСкрипт банов для RusHub
тестим и комменьтруем
79 Wariner 104 604 28.9.2015, 13:34 Посл. сообщение: NeirRon
No New Posts Скрипт загрузки файла
1 FreeNas 6 426 21.7.2015, 10:58 Посл. сообщение: HackFresse
No new Как вызвать bash скрипт из Lua
14 Iskandark 17 317 3.3.2015, 12:42 Посл. сообщение: Iskandark
No new Topic has attachmentsНовогодний Скрипт
API2
22 Tsd 35 632 12.12.2014, 16:28 Посл. сообщение: Tsd
No New Posts Скрипт запрета видеть чат
запрет видеть чат
2 dimetro 7 292 5.12.2014, 17:37 Посл. сообщение: dimetro
No New Posts Topic has attachmentsпеределать скрипт kinozal.tv
6 BOKOREZ 13 006 30.10.2014, 18:29 Посл. сообщение: Dani_Filth

 



RSS Сейчас: 26.11.2024, 23:29