[Урок] Авто обновление скриптов
|
|
[CM]Hoffmann |
Дата: Понедельник, 18.06.2018, 22:22 | Сообщение # 1
|
Новичок
Сообщений: 8
Статус: Offline
|
Всем привет, нашёл на просторах интернета интересный код для автообновления скриптов, думаю там всё понятно, если что в лс. )
Код #SingleInstance Force #SingleInstance #NoEnv
IfnotExist, %A_temp%\YROK ;Если такой капки нет, то... { FileCreateDir, %A_temp%\YROK ;Он создает эту папку }
Filedelete, %A_temp%\YROK\YROK.exe ;Команда для удаления вашего скрипта для скачивания новой версии IfnotExist, %A_temp%\YROK\YROK.exe ;Если такого файла нет, то... { URLDownloadToFile, https://drive.google.com/uc?authuser=0&id=1Dl0ywGhMYVEJZUuTiAZFczI6amTJGYEH&export=download, %A_temp%\YROK\YROK.exe ;Он скачивает ваш скрипт по ссылке TrayTip,Проверка обновлений,Подождите 5 секунд ;Подсказка в трее sleep 5000 ;Задержка между командами 5 секунд Run,%A_temp%\YROK\YROK.exe ;Запуск вашего скрипта ExitApp ;Закрытие этого скрипта return }
P.S источник не известен, код у меня давно.
Сообщение отредактировал [CM]Hoffmann - Понедельник, 18.06.2018, 22:22 |
|
|
|
Rinat_Namazov |
Дата: Понедельник, 18.06.2018, 23:34 | Сообщение # 2
|
Боец
Сообщений: 122
Статус: Offline
|
Каждый раз когда запускаешь этот скрипт он будет скачивать новую версию даже если обновления не было, а так же скрипт помещается во временную папку, а должен заменить ту которую запустили.
|
|
|
|
[CM]Hoffmann |
Дата: Вторник, 19.06.2018, 00:01 | Сообщение # 3
|
Новичок
Сообщений: 8
Статус: Offline
|
Цитата Rinat_Namazov ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/4/lastpost.gif) ) Каждый раз когда запускаешь этот скрипт он будет скачивать новую версию даже если обновления не было, а так же скрипт помещается во временную папку, а должен заменить ту которую запустили. В этом и есть смысл этого кода, не чего нового не открыл, при запуске он удаляет скрипт и скачивает заново.
|
|
|
|
Rinat_Namazov |
Дата: Вторник, 19.06.2018, 00:09 | Сообщение # 4
|
Боец
Сообщений: 122
Статус: Offline
|
Цитата [CM]Hoffmann ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/4/lastpost.gif) ) В этом и есть смысл этого кода, не чего нового не открыл, при запуске он удаляет скрипт и скачивает заново. Хорошая и качественная система обновлений это когда посылаются запросы на сервер, который возвращает JSON ответ, если сообщение о обновлении то скрипт скачивает новую версию и заменяет текущую копию. Скачивать самого себя каждый раз при запуске - бред, а так же этот код помещает скаченный файл в папку temp, и не заменяет себя, а также только что скаченная и запущенная версия из папки temp попытается скачать себя в свою папку с таким же названием, но не сможет заменить так как он уже запущен. Хрень короче а не код это.
|
|
|
|
[CM]Hoffmann |
Дата: Вторник, 19.06.2018, 00:51 | Сообщение # 5
|
Новичок
Сообщений: 8
Статус: Offline
|
Цитата Rinat_Namazov ( ![Ссылка на цитируемый текст](/.s/img/fr/ic/4/lastpost.gif) ) а так же этот код помещает скаченный файл в папку temp, и не заменяет себя, а также только что скаченная и запущенная версия из папки temp попытается скачать себя в свою папку с таким же названием, но не сможет заменить так как он уже запущен. Хрень короче а не код это.
Как минимум этот код работает, и заменяет файл на актуальный, он сначала его удаляет, а потом скачивает файл в этот момент он и заменяется. Смотри код внимательнее.
|
|
|
|
Joni228 |
Дата: Вторник, 19.06.2018, 21:12 | Сообщение # 6
|
Бывалый
Сообщений: 314
Статус: Offline
|
Не легче было бы сделать проверку на новую версию? Просто каждый раз при запуске делать закачку, полный бред...
|
|
|
|
Prohacker[KND] |
Дата: Среда, 20.06.2018, 15:51 | Сообщение # 7
|
Новичок
Сообщений: 28
Статус: Offline
|
Пример того, как у меня проверяет обновление.Все версии на гуглтаблице, можно использовать просто на хостинге файл. Если в мой код добавить данную загнрузку и переписать на замену скрипта будет неплохое автообновление.
Код UrlDownloadToFile, ссылка, %A_MyDocuments%\GTA San Andreas User Files\SAMP\version.scv FileEncoding, UTF-8 sleep 500 Filev = %A_MyDocuments%\GTA San Andreas User Files\SAMP\version.scv FileRead, vera, %Filev% RegExMatch( vera,"Название,(.*),(.*)", aVersion) If (aVersion1 > vers) { MsgBox, 4 ,Доступно обновление, Обнаружена новая версия программы: %aVersion1%`nНажмите "Да" для перехода к скачиванию. IfMsgBox Yes { Run, %aVersion2% ExitApp } } FileEncoding,
AHK developer
|
|
|
|
Toopie |
Дата: Среда, 20.06.2018, 20:26 | Сообщение # 8
|
Боец
Сообщений: 122
Статус: Offline
|
Ну фу, выше же писали, лучший способ проверки версии - это отправлять и принимать JSON-пакеты от сервера.
лучший в мире самп сервер 185.159.129.71:7777 лидерки админки да
|
|
|
|