[Evaporation Project] Система дистрибуции файлов
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
What's the problem then :-D ?
Кстати, по-моему, шансы выпросить у него сорцы довольно малы - ты далеко не первый, кто его об этом просит. И, кажись, он уже отвечал отрицательно на такие запросы - пошарьтесь по Рину в поисках этого вопроса.
Кстати, по-моему, шансы выпросить у него сорцы довольно малы - ты далеко не первый, кто его об этом просит. И, кажись, он уже отвечал отрицательно на такие запросы - пошарьтесь по Рину в поисках этого вопроса.
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
Ладно... пошарюсь... ;)
Не нашёл... возможно плохо искал...
Создал тему http://cs.rin.ru/forum/viewtopic.php?f=20&t=52550
[spoiler=""Ради интереса попырил на translate.ru xD""]Я пишу непаровую систему для парового распределения содержания. К сожалению, у меня есть проблема с работой с НАИБОЛЬШИМ МНОЖИТЕЛЕМ и файлами NCF. Все, в чем я нуждаюсь - во-первых - чтобы читать, некоторая мешанина файла в архиве (наибольший множитель, и ncf имеют, если), и во-вторых написать файл в наибольший множитель, или изменяют заголовок ncf.
Любой получил идеи? Между прочим - система развивается как часть Проекта Испарения.[/spoiler]
Не нашёл... возможно плохо искал...
Создал тему http://cs.rin.ru/forum/viewtopic.php?f=20&t=52550
[spoiler=""Ради интереса попырил на translate.ru xD""]Я пишу непаровую систему для парового распределения содержания. К сожалению, у меня есть проблема с работой с НАИБОЛЬШИМ МНОЖИТЕЛЕМ и файлами NCF. Все, в чем я нуждаюсь - во-первых - чтобы читать, некоторая мешанина файла в архиве (наибольший множитель, и ncf имеют, если), и во-вторых написать файл в наибольший множитель, или изменяют заголовок ncf.
Любой получил идеи? Между прочим - система развивается как часть Проекта Испарения.[/spoiler]
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
Ну, я могу прикрутить скачку и установку GCF, но...мне лень %) . Можно, впрочем, повыпрашивать сорцы у МОЗГОВ =) .
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
Спокойно! В моих лабораториях я прогрессирую с развитием Games Manager'a (када я не на даче конечно ;)) Однако, времени мало (другие проекты его съедают :() и поетому разработка течёт вяло...
Добавлено спустя 10 минут 26 секунд:
Кстати я сейчас разрабатываю систему управления бд NCF/GCF, игр итд на сервере, дабы дать потом доступ всем и попросить залить на сервер инфу о них (играх и кеше :)).
Добавлено спустя 35 секунд:
Добавлено спустя 10 минут 26 секунд:
Кстати я сейчас разрабатываю систему управления бд NCF/GCF, игр итд на сервере, дабы дать потом доступ всем и попросить залить на сервер инфу о них (играх и кеше :)).
Добавлено спустя 35 секунд:
eldest писал(а):По почте! блахахаха))))
-
- Эксперты no-Steam
- Сообщения: 3501
- Зарегистрирован: 18.07.2008
- Благодарил (а): 2 раза
- Поблагодарили: 17 раз
- Контактная информация:
Отвечаю здесь на обсуждение, начатое с сообщения http://forum.csmania.ru/viewtopic.php?p=273525#p273525 в теме "Требуются добровольцы для заливки GCF-файлов на FTP-сервер!".
MOZGIII
И нужна поддержка не только народа, но и мейла.
И ещё необходима оффлайн-база ссылок, на случай "падения" сервера.
Сложная система, в данном случае, не востребована...
[spoiler=""Предлагаю упрощённую схему...""]Возможный алогитм действий программы на начальной стадии выполнения:
1. Cоединение с сетью steam с целью скачивания или обновления CDR.
[frame]gds1.steampowered.com:27030
gds2.steampowered.com:27030[/frame]Или использование программой файла clientregistry.blob (при наличии) для своих нужд.
2. Скачивание (даже если файл уже был закачан раньше) файла со списком доступных для закачки приложений steam (котрые будут отображаться).
Имя файла, к примеру, SupportApps.ini. Таймаут соединения "со своим" сервером в этом и других случаях: 10 - 15 секунд. Если в течение этого времени не будет установлено соединение - запуск в оффлайн-режиме с использованием закачанных ранее файлов (если отсутствуют - сообщение об ошибке)...
Изначально при закачке файл должен сохраняться под именем SupportApps_new.ini
Содежимое:
[frame]LastVersion=%LinksBaseLastVersion%
Apps: %AppId%, %AppId%[/frame]
3. База ссылок (далее БС) представляет собой файл с названием, например, LinksBase.ini. Программа сравнивает значение "Version" из уже закачанной БС (если имеется) со значением "LastVersion" из закачанного файла SupportApps.ini. Если значение переменной из скачанного файла SupportApps.ini строго больше значения, прописанного в БС, то файл с БС закачивается заново (в сжатом виде, rar).
Изначально при закачке файл должен сохраняться под именем LinksBase_new.ini
Содержимое БС:
[frame]Version=%baseVersionNumber%
[%CacheID%]
SequrityOnSteam=1/0
ArchiveType*=7z/rar
FileVersion=%VersionNumber%
Link_0/mail/narod_%FileVersion%=%url%
Link_0/mail/narod_%FileVersion%_light**=%url%
Link_0/mail/narod_Update_%type%***_%FileVersion%_to_%FileVersion%=%url%
[%CacheID%]
и т.п.[/frame]* - Тип сжатия для всех ссылок (включая патчи), связанных с данным %CacheID%. Не вижу смысла указывать тип сжатия для каждой ссылки по отдельности...
** - "урезанная" версия файла; данная функция может пригодиться для таких фалов, как left 4 dead base и left 4 dead sound
*** - Тип патча, возможные значения переменной %type%:
4. После того, как программа "убедится" в работоспособности (точные критерии проверки пока не придумал) обновлённых файлов со списком контента и БС, она должна:[frame]1) Переименовать существующие файлы (если имеются) в %filename%_old.ini
2) Переименовать закачанные файлы %filename%_new в %filename%.[/frame][/spoiler][spoiler=""p.s.""]Программа должна уметь работать в оффлайне в случае падения сервера. В списке должны отображаться (по умолчанию) только игры (без файлов). В качестве контент-сервера можно использовать файлообменники... Нужна поддержка "внешних модулей": плагинов (для работы с файлообменниками и др) и локализации интерфейса программы (возможность выбора файла).
p.s. Возможно, я где-то натупил... :%)[/spoiler]
MOZGIII
Почему это временно? Именна такая система и должна быть постоянной... Она надёжнее... :crazy:могу сделать времено систему скачивания файлов с народа
И нужна поддержка не только народа, но и мейла.
И ещё необходима оффлайн-база ссылок, на случай "падения" сервера.
Ну и что?нужно будет каждый файл после заливки прописывать вручную
Сложная система, в данном случае, не востребована...
[spoiler=""Предлагаю упрощённую схему...""]Возможный алогитм действий программы на начальной стадии выполнения:
1. Cоединение с сетью steam с целью скачивания или обновления CDR.
[frame]gds1.steampowered.com:27030
gds2.steampowered.com:27030[/frame]Или использование программой файла clientregistry.blob (при наличии) для своих нужд.
2. Скачивание (даже если файл уже был закачан раньше) файла со списком доступных для закачки приложений steam (котрые будут отображаться).
Имя файла, к примеру, SupportApps.ini. Таймаут соединения "со своим" сервером в этом и других случаях: 10 - 15 секунд. Если в течение этого времени не будет установлено соединение - запуск в оффлайн-режиме с использованием закачанных ранее файлов (если отсутствуют - сообщение об ошибке)...
Изначально при закачке файл должен сохраняться под именем SupportApps_new.ini
Содежимое:
[frame]LastVersion=%LinksBaseLastVersion%
Apps: %AppId%, %AppId%[/frame]
3. База ссылок (далее БС) представляет собой файл с названием, например, LinksBase.ini. Программа сравнивает значение "Version" из уже закачанной БС (если имеется) со значением "LastVersion" из закачанного файла SupportApps.ini. Если значение переменной из скачанного файла SupportApps.ini строго больше значения, прописанного в БС, то файл с БС закачивается заново (в сжатом виде, rar).
Изначально при закачке файл должен сохраняться под именем LinksBase_new.ini
Содержимое БС:
[frame]Version=%baseVersionNumber%
[%CacheID%]
SequrityOnSteam=1/0
ArchiveType*=7z/rar
FileVersion=%VersionNumber%
Link_0/mail/narod_%FileVersion%=%url%
Link_0/mail/narod_%FileVersion%_light**=%url%
Link_0/mail/narod_Update_%type%***_%FileVersion%_to_%FileVersion%=%url%
[%CacheID%]
и т.п.[/frame]* - Тип сжатия для всех ссылок (включая патчи), связанных с данным %CacheID%. Не вижу смысла указывать тип сжатия для каждой ссылки по отдельности...
** - "урезанная" версия файла; данная функция может пригодиться для таких фалов, как left 4 dead base и left 4 dead sound
*** - Тип патча, возможные значения переменной %type%:
- GCF (GCF-патч)
- NCF (файлы, упакованные в архив; предназначение: распаковка архива в steamapps, т.е. упрощённый вариант обновления NCF или небольшого GCF-файла (клиент CSS/TF2))
- GCF_ToFull (патч, предназначенный для преобразования "урезанного" варианта GCF-файла в полный)
- NCF_ToFull (файлы, упакованные в архив; предназначение: распаковка архива в steamapps, т.е. упрощённый вариант обновления NCF с целью преобразования "урезанной" версии NCF-файла в полную). Если такой патч совместим с любой версией файла (пример: left 4 dead base, intro.bik), то должен допускаться вариант замены: [frame]_%FileVersion%_to_%FileVersion%[/frame]на[frame]_*[/frame]
4. После того, как программа "убедится" в работоспособности (точные критерии проверки пока не придумал) обновлённых файлов со списком контента и БС, она должна:[frame]1) Переименовать существующие файлы (если имеются) в %filename%_old.ini
2) Переименовать закачанные файлы %filename%_new в %filename%.[/frame][/spoiler][spoiler=""p.s.""]Программа должна уметь работать в оффлайне в случае падения сервера. В списке должны отображаться (по умолчанию) только игры (без файлов). В качестве контент-сервера можно использовать файлообменники... Нужна поддержка "внешних модулей": плагинов (для работы с файлообменниками и др) и локализации интерфейса программы (возможность выбора файла).
p.s. Возможно, я где-то натупил... :%)[/spoiler]
© [user]
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
[user]
Во-первых всяких сложностей к которым у меня нет доступа (типо чтение CRD или соединение с серверами типа gds1.steampowered.com) не будет, т.к. мне с этим разбираться лениво. Если сорцы чего-то есть, эти какие-то функции будут в проге. Если нет - я разбирать форматы небуду...
Во-вторых Games Manager работает на XML. Автономная работа (без EPMS) пока не будет реализованна т.к. непонатно как вообще будет реализован проект.
В-третьих - ууу... муторно... к томуже у нас XML. Но идея ясна %)
В-четвёртых - это итак понятно...
Итог. Как я понял ты хочеш чтобы прога все свои оперативные данные хранила на машинах клиентов... Возможно что-нибудь и получится, но я очень неуверен
Во-первых всяких сложностей к которым у меня нет доступа (типо чтение CRD или соединение с серверами типа gds1.steampowered.com) не будет, т.к. мне с этим разбираться лениво. Если сорцы чего-то есть, эти какие-то функции будут в проге. Если нет - я разбирать форматы небуду...
Во-вторых Games Manager работает на XML. Автономная работа (без EPMS) пока не будет реализованна т.к. непонатно как вообще будет реализован проект.
В-третьих - ууу... муторно... к томуже у нас XML. Но идея ясна %)
В-четвёртых - это итак понятно...
Итог. Как я понял ты хочеш чтобы прога все свои оперативные данные хранила на машинах клиентов... Возможно что-нибудь и получится, но я очень неуверен
- Pr0Ger
- Модератор
- Сообщения: 1829
- Зарегистрирован: 16.01.2009
- Благодарил (а): 17 раз
- Поблагодарили: 214 раз
- Контактная информация:
соединение с серверами типа gds1.steampowered.com
Код: Выделить всё
cdrTools.exe download gds1.steampowered.com 27030 ContentDescriptionRecord.blob
ини файл таких размеров будет парсится вечно, ведь обрашение даже через класс TIniFile ведет поиск по всему файлу, причем не очень оптимальныйБаза ссылок (далее БС) представляет собой файл с названием, например, LinksBase.ini
имхо лучше заюзать SQLite, бд работает без установки, хранит все в файлах, выборка делается стандартными SQL запросами
а автономная работа не нужна(только для запуска/смены эмуляторы/etc)посколько возможно сделать дублирование инфы на разных сайтах(т.е. бд лежит на разных хостингах) т.е. в случае недоступности одного выбирать с другого
и скрипт который прописывает инфу о файле в БД автоматически дублировал ее в разных местах
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
А думаешь, там много ссылок будет?
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
- Pr0Ger
- Модератор
- Сообщения: 1829
- Зарегистрирован: 16.01.2009
- Благодарил (а): 17 раз
- Поблагодарили: 214 раз
- Контактная информация:
ну на каждую GCF/NCF на двух файлообменниках
игр небесплатных по мнению store.steampowered.com 604 штуки, в каждой от 1 до 10 файлов, плюс ссылка на народ и маил
итого получаем от 1208 до 12080 ссылок
и если прописывать каждый как
то получим нехилый размер файла, который еше предлагают хранить локально, и при его обновлении каждый раз перекачивать его, получаем два метра если ссылки имеют вид %url%, а если вставить реальные линки то размер будет значительно больший, тем более надо смотреть в будушее с учетом что количество будет увеличиваться
имхо оптимальный вариант это что-бы БД была на нескольких серверах, и там был скрипт который выполняет выборку с БД(не все хостинги разрешают коннект к БД с IP отличным от 127.0.0.1)
игр небесплатных по мнению store.steampowered.com 604 штуки, в каждой от 1 до 10 файлов, плюс ссылка на народ и маил
итого получаем от 1208 до 12080 ссылок
и если прописывать каждый как
Код: Выделить всё
[%CacheID%]
SequrityOnSteam=1/0
ArchiveType*=7z/rar
FileVersion=%VersionNumber%
Link_0/mail/narod_%FileVersion%=%url%
Link_0/mail/narod_%FileVersion%_light**=%url%
Link_0/mail/narod_Update_%type%***_%FileVersion%_to_%FileVersion%=%url%
имхо оптимальный вариант это что-бы БД была на нескольких серверах, и там был скрипт который выполняет выборку с БД(не все хостинги разрешают коннект к БД с IP отличным от 127.0.0.1)
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
Когда я думал создавать несеолько контентных серверов я планировал делать им очень тесную систему синхронизации... Плюс в каждом контентном сервере было-бы зеркало модуля EPMS для поиска других серверов (EPCS). Однако, если файлов будет действительно много, нам никак не обойтись одним EPCS сервером. Их должно быть много (по идее). А EPMS будет иметь общую глобальную базу игр и файлов + список этих серверов. Клиентская программа, соответственно, качала бы файлы, автоматически выбирая сервер, с которого должна вестись скачка (по пингу и наличию файла на сервере).
-
- Эксперты no-Steam
- Сообщения: 3501
- Зарегистрирован: 18.07.2008
- Благодарил (а): 2 раза
- Поблагодарили: 17 раз
- Контактная информация:
MOZGIII
Автономная работа (не важно как она будет реализована, но нужна) и поддержка народа / мейла необходимы! Упадёт главный сервер или контент-сервер и...
Автономная работа (не важно как она будет реализована, но нужна) и поддержка народа / мейла необходимы! Упадёт главный сервер или контент-сервер и...
© [user]
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
[user]
Планируется система зеркал серверов - в частности EPMS. Контентные сервера будут зеркалить сами-себя %) Так-что падения главного сервера можно не боятся.
Насчёт поддержки мейла - надо вводить как-то капчу. А насчёт народа - всё оки, всё будет...
Однако при размещении файлов на народе теряется основной понт: нельзя будет налету генерировать .update файлы для gcf/ncf по отосланным .archive (то, что я хотел сделать в EPCS)
Добавлено спустя 2 минуты 41 секунду:
Кстати я написал ещё немного кода Games Manager - кто хочет - кину в лс ;) Там нету скачивания по-прежнему, но уже есть отображение разных картиночек и файлов, ассоциированных с игрой (качается с сервера)
Добавлено спустя 3 минуты 50 секунд:
И ещё - на сайте теперь работает управление базой известных алиасов NCF/GCF, такчто я могу теперь её редактировать из меню прямо на сайте %) Но это для большинства здесь не важно ;)
Планируется система зеркал серверов - в частности EPMS. Контентные сервера будут зеркалить сами-себя %) Так-что падения главного сервера можно не боятся.
Насчёт поддержки мейла - надо вводить как-то капчу. А насчёт народа - всё оки, всё будет...
Однако при размещении файлов на народе теряется основной понт: нельзя будет налету генерировать .update файлы для gcf/ncf по отосланным .archive (то, что я хотел сделать в EPCS)
Добавлено спустя 2 минуты 41 секунду:
Кстати я написал ещё немного кода Games Manager - кто хочет - кину в лс ;) Там нету скачивания по-прежнему, но уже есть отображение разных картиночек и файлов, ассоциированных с игрой (качается с сервера)
Добавлено спустя 3 минуты 50 секунд:
И ещё - на сайте теперь работает управление базой известных алиасов NCF/GCF, такчто я могу теперь её редактировать из меню прямо на сайте %) Но это для большинства здесь не важно ;)
- NiGHt-LEshiY
- Полковник
- Сообщения: 10258
- Зарегистрирован: 13.06.2008
- Откуда: Россия
- Благодарил (а): 752 раза
- Поблагодарили: 2667 раз
- Контактная информация:
MOZGIII
Почему же? Всё важно..
Почему же? Всё важно..
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.
Просьба присылать сообщения об ошибках в ЛС.