Index
Project Maintenance Service
Проверка версии
*О сервисе *Новости *Проекты *Пользователи *Справочная
pms
О проекте
НовостиRSS
СтатьиRSS
Каталог статей
Команда
Багтреккер
Найти сообщение
Секции
Контрольные точки
Панель управления
Сообщение #0000000682

Проверка версии

Код:#0000000682
Проект:pms: Project Maintenance Service
Секция:Пожелания и улучшения
Контрольная точка:нет
Статус:открыт
Отправил:shade
Назначен:
Видимость:публичный
Дата отправки:01.02.2009 13:36
Дата обновления:01.02.2009 18:08
Комментариев:2
Наблюдатели:shade

Описание

Мне тут пришла в голову идея — реализовать в API функцию для получения последней версии ПО (или отдельного компонента). Так например, программа может при старте (раз в месяц или по команде) проверять есть ли более свежий релиз. Если есть, то сообщить пользователю со ссылкой на релиз и/или на соответствующую новость.

Можно предоставить унифицированный АПИ, который возволит хранить произвольные куски информации. Так например, в проекте Japan_Crossword можно хранить новые уровни/кроссворды
Цитировать

Комментарии пользователей

Добавить комментарий
Лагунов Алексей (alexs) Добавлено: 01.02.2009 17:36
Там больше нужна функция листинга существующих компонент (уровней) чтобы определять что появились новые карты для игры. И не просто листинг - а ещё и ведение дополнительных утрибутов (желательно произвольных) - по типу описания для данного компонента.
Золотов Алексей (shade) Добавлено: 01.02.2009 18:08
разработчик
shade
pascal:
StoredObject = record
  id: integer; // ID объекта
  title: string; // заголовок/название объекта
  objType: string; // тип объекта
  info: string; // небольшое описание объекта
  size: integer; // размер данных объекта (в байтах)
  ctime: datetime; // время создания объекта
  mtime: datetime; // время модификации объекта
end;

StoredObjectProperty = record
  object_id: integer; // ID объекта
  name: string; // название объекта
  data: binary; // данные свойства
end;

function GetStoredObjectByName(name: string): StoredObject;
function GetStoredObjects(Limit, Offset: Integer): array of StoredObject;
function GetStoredObjectsByType(Limit, Offset: Integer; ObjType: string): array of StoredObject;
function SyncStoredObject(from, to: datetime): array of StoredObject;
function SyncStoredObjectByType(form, to: datetime; ObjType: string): array of StoredObject;
function GetStoredObjectProperties(id: Integer): array of StoredObjectProperty;
function GetStoredObjectProperty(id: Integer; name: string): StoredObjectProperty;
procedure SetStoredObjectProperty(id: Integer; name: string; data: binary);
procedure RemoveStoredObjectProperty(id: integer; name: string);

// прочитать последнюю верисю
VersionInfo := GetStoredObjectByName('LastVersion');
if VersionInfo.title <> CurrentVersion then
begin
  ShowMessage('Доступна новая версия: ' + VersionInfo.title + #13#13 + VersionInfo.info);
end;

// загрузить список уровней
date := now;
List := SyncStoredObjectsByType(0, date, 'Levels');
DB.BeginTransaction;
DB.Config.save('LastSync', date);
for i := 0 to Length(List) do DB.AddLevel(List[i]);
DB.CommitTransaction;

// обновить список уровней
DB.BeginTransaction;
LastSyncDate := DB.config.read('LastSync');
NowDate := now;
List := SyncStoredObjectsByType(LastSyncDate, NowDate, 'Levels');
for i  := 0 to Length(List) do
  if DB.ExistsLevel(List[i]) then DB.UpdateLevel(List[i])
  else DB.AddLevel(List[i]);
DB.config.save('LastSyncDate', NowDate);
DB.CommitTransaction;

Добавить комментарий

Логин
Пароль
Прикрепить файл (до 500Кб)
Комментарий
Bold Картинка Картинка с подписью Цитата Код Отключение BB-кодов

Журнал изменений

Время Пользователь Изменения
01.02.2009 13:36 shade Добавлено сообщение об ошибке
01.02.2009 13:43 shade
  • description edited
01.02.2009 17:36 alexs Комментарий добавлен
01.02.2009 18:08 shade Комментарий добавлен
Меню системы
О сервисе
НовостиRSS
Справочная
Проекты
Пользователи
Вход
Регистрация
Переход к багу