Найти в Дзене
На балконе

FTP лаунчер для SteamDeck

Всем привет! Начну с того, что я не программист. Писать код умею на уровне индийского быдлокодера, при помощи интернета и chatGPT. В программе присутствуют косяки, баги и недоработки. На данный момент программа представляет из себя не более чем первую функциональную модель моей идеи. Я делюсь программой с сообществом для ознакомления и не несу никакой ответственности за результат работы программы. Программа не предусматривает обмен играми и подключение к публичным FTP-серверам. Я настоятельно не рекомендую подключаться к публичным FTP-серверам или расшаривать свой. Думаю на этом диклеймер закончен. Итак, в связи со сложившейся ситуацией, покупать игры стало довольно проблематично. Многие вернулись на торрент-трекеры и качают репаки, которые распаковывать на SteamDeck глупо. Почитав форумы, понял, что все загружают файлы игр с помощью универсальных FTP-клиентов, что не очень удобно. И тут мне пришла мысль написать простой FTP-клиент, который будет адаптирован под экран SteamDeck, не им
Оглавление

Всем привет!

Начну с того, что я не программист. Писать код умею на уровне индийского быдлокодера, при помощи интернета и chatGPT. В программе присутствуют косяки, баги и недоработки. На данный момент программа представляет из себя не более чем первую функциональную модель моей идеи. Я делюсь программой с сообществом для ознакомления и не несу никакой ответственности за результат работы программы. Программа не предусматривает обмен играми и подключение к публичным FTP-серверам. Я настоятельно не рекомендую подключаться к публичным FTP-серверам или расшаривать свой. Думаю на этом диклеймер закончен.

Итак, в связи со сложившейся ситуацией, покупать игры стало довольно проблематично. Многие вернулись на торрент-трекеры и качают репаки, которые распаковывать на SteamDeck глупо. Почитав форумы, понял, что все загружают файлы игр с помощью универсальных FTP-клиентов, что не очень удобно. И тут мне пришла мысль написать простой FTP-клиент, который будет адаптирован под экран SteamDeck, не имеет ненужных функций и управляется с помощью геймпада.

Серверная часть

Для начала необходимо запустить FTP-сервер. Использовать можно любой сервер. У меня он находится на Synology. В Windows можно добавить в компонентах FTP-сервер, но я решил сделать отдельную утилиту, в которой необходимо сделать минимум действий для начала работы.

Серверная часть
Серверная часть
  • Необходимо запустить сервер из любой директории на компьютере. Файл chek_green.png должен лежать рядом с файлом сервера;
  • IP адрес: это адрес сетевого интерфейса устройства, на котором будет запущен сервер. Сделано это для тех, у кого несколько интерфейсов;
  • Придумайте логин и пароль для авторизации клиента на сервере;
  • Директория с играми: тут необходимо вписать директорию в которой находятся игры. Важно: игры должны находиться в директории "game_deck". Адрес необходимо прописать до директории "geme_deck". Пример: прописать необходимо "C:\Users\user\game", а игры должны находиться в "C:\Users\user\game\game_deck";
  • При нажатии на кнопку "Запустить", окно свернется в системный трей, и, если все настройки верны, то сервер запустится. Возможно проявится запрос от сетевого экрана на разрешение открытия 21 порта. Он необходим для работы FTP;
  • После этого в директории C:\Users\%USERNAME%\AppData\Roaming\SGP будет создан файл setting.pickle, в котором будут храниться адрес сервера, логин, пароль и директория с играми. Хранятся они без шифрования.

Это все, что умеет FTP-сервер. Переходим к клиентской части.

FTP-клиент

Для установки FTP-клиента, необходимо выйти в режим рабочего стола, загрузить pkg пакет, один раз запустить его, чтобы разрешить запуск неподписанного пакета. После этого запрос появляться уже не будет. Затем нажатием по файлу программы нужно вызвать контекстное меню и нажать "add steam". После этого можно вернуться в режим консоли. В разделе сторонних библиотеках появится программа SGP.

-2

В стартовом окне программы выводится список добавленных FTP-серверов. Необходимо перейти на страницу добавления FTP-серверов и добавить свой FTP-сервер. В директории /home/deck/.SGP/ появится файл LOAD_FTP_LIST.pickle

-3

Затем перейти на страницу настроек и поменять адрес папки для сохранения игр, если это необходимо. В директории /home/deck/.SGP/ появится файл default_fold.pickle

-4

Теперь можно вернуться на страницу загрузки и подключиться к FTP-серверу. Откроется список игр, размещенных в папке game_deck на FTP-сервере. Описание и постер к играм необходимо добавить самому (если это необходимо). Для этого создаем в папке с игрой папку description. В нее необходимо поместить два файла: txt и jpg. Файлы должны называться так же, как и директория самой игры.

-5

После скачивания игры можно добавить ее в non-steam библиотеку. ВАЖНО: после добавления необходимо или перезагрузить SteamDeck, или выйти в режим рабочего стола и вернуться обратно в режим консоли. Управление геймпадом в окне добавления в библиотеку non-steam я пока не сделал.

-6

Если места не достаточно, то кнопки "Скачать" и "Добавить в библиотеку" будут недоступны.

-7

Если в папке со скачанной игрой не все файлы, то будет выведено предупреждение, и по нажатию кнопки "Проверить целостность" необходимые файлы будут скачаны снова.

-8

Так же есть возможность перемещать скачанные игры между SSD и SD.

Заключение

Программа довольно понятная и простая, но не лишена багов. В ней отсутствуют проверки "от дурака", код довольно массивный и не эффективный. Публикую ее сейчас, так как времени на разработку не хватает. Собрав отзывы, буду принимать решение о развитии ее дальше, так как мои потребности она уже удовлетворила в полном объеме.

В планах реализовать:

  1. автоматическую загрузку описания и постеров;
  2. добавление игры в non-steam библиотеку без перезагрузки;
  3. управление окном добавления в библиотеку non-steam с помощью геймпада.

Скачать можно тут:

SGP