Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Яндекс.Браузер | Yandex.Browser (часть 1)

Модерирует : gyra, Maz

Maz (02-02-2024 15:35): Яндекс.Браузер | Yandex.Browser (часть 2)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

HORiSi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=Yandex.ico
#AutoIt3Wrapper_outfile=Browser.exe
#AutoIt3Wrapper_Change2CUI=y
#AutoIt3Wrapper_Res_Comment=http://rutracker.org/forum/viewtopic.php?t=5329265 AutoIt Wrapper GUI http://autoit-script.ru/threads/autoit-wrapper-gui-rasshirennaja-kompiljacija-skriptov.22/
#AutoIt3Wrapper_Res_Description=Yandex Browser Portable & Updater
#AutoIt3Wrapper_Res_Fileversion=16.11.1.673
#AutoIt3Wrapper_Res_LegalCopyright=http://rutracker.org/forum/viewtopic.php?t=5329265
#AutoIt3Wrapper_Res_Language=1049
#AutoIt3Wrapper_Res_File_Add=Browser.au3
#AutoIt3Wrapper_Res_File_Add=Yandex-SetDefault.au3
#AutoIt3Wrapper_Res_File_Add=Settings.ini
#AutoIt3Wrapper_Res_File_Add=yandex.ico
#AutoIt3Wrapper_Res_File_Add=config.txt
#AutoIt3Wrapper_Res_File_Add=7z2exe.bat
#AutoIt3Wrapper_Res_File_Add=7zsd_LZMA2.sfx
#AutoIt3Wrapper_Res_File_Add=WinHttp.au3
#AutoIt3Wrapper_Res_File_Add=WinHttpConstants.au3
#AutoIt3Wrapper_Res_File_Add=7za.exe
#AutoIt3Wrapper_Res_File_Add=wget.exe
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
 
 
#include <Date.au3>
#include <File.au3>
 
#include <WindowsConstants.au3>
 
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <ProgressConstants.au3>
#include <Inet.au3>
#include <Array.au3>
#include <WinHTTP.au3>
 
 
$x = @DesktopWidth/2
$y = @DesktopHeight/2 - 120
 
 
If NOT WinExists("[CLASS:YandexBrowser_WidgetWin_1]") Then ;проверяем не запущен ли уже браузер
 
    $iHours = Number(IniRead(@ScriptDir & "\Settings.ini", "Loader", "BackupAfter", 0)) ; читаем ini
 
    If $iHours > 0 Then ; число часов больше нуля, проверим не нужно ли сделать бекап
        $bFiles = _FileListToArray(@ScriptDir & "\Backups\", "*.7z",1) ; читаем 7z файлы из папки Backups в массив
 
        ; заодно проверим старые бекапы
        $delDate = IniRead(@ScriptDir & "\Settings.ini", "Loader", "delDate", 90)
        $nowDate=@YEAR&"/"&@MON&"/"&@MDAY;текущая дата
        $oldDate=_DateAdd("D", -$delDate,$nowDate) ;отнимаем число дней от текущей даты
        $formatDate=StringSplit($oldDate,"/") ;форматируем дату
        $newDate=$formatDate[1]&$formatDate[2]&$formatDate[3]&@HOUR&@MIN&@SEC ;форматируем дату
 
        $iTime = 20120831000000; YYYYMMDDhhmmss - дата где-то в прошлом
        If IsArray ($bFiles) Then ; ищем самый свежий 7z файл в папке Backups
            For $p = 1 To $bFiles[0]
                $iFileTime = Number(FileGetTime(@ScriptDir & "\Backups\" & $bFiles[$p], 0, 1))
                If $iFileTime > $iTime Then
                    $iTime = $iFileTime
                EndIf
                If $delDate > 0 Then
                    If $iFileTime < $newDate Then ;файл старше заданного числа дней
                        FileDelete (@ScriptDir & "\Backups\" & $bFiles[$p]) ;перемещаем старый файл в корзину
                    EndIf
                EndIf
            Next
        EndIf
        ; Преобразуем дату файла в строку понятную  _DateDiff (YYYY/MM/DD HH:MM:SS)
        $iTime = StringMid($iTime, 1, 4) & "/" & StringMid($iTime,5,2) & "/" & StringMid($iTime,7,2) & " " & StringMid($iTime,9,2) & ":" & StringMid($iTime,11,2) & ":" & StringMid($iTime,13,2)
        $iDateCalc = _DateDiff( 'h',$iTime,_NowCalc()) ; число часов после создания самого последнего архива
        If $iDateCalc > $iHours Then ; если больше заданного в ini, создадим еще один архив
            ToolTip("создание резервной копии профайла", $x, $y,"Минуточку..",1,2)
            $iCompress = Number(IniRead(@ScriptDir & "\Settings.ini", "Loader", "compressMod", 3)) ; читаем ini
            RunWait (@ComSpec & ' /c Utils\7za a -r -mx' & $iCompress &' Backups\' & @YEAR & @MON & @MDAY & '-backup.7z Data\* -x!Data\Default\Cache\* -x!Data\PepperFlashInstaller\*' , @ScriptDir, @SW_HIDE)
        EndIf
    EndIf
    ;обновления
    ToolTip("")
    $updateDays = Number(IniRead(@ScriptDir & "\Settings.ini", "Loader", "UpdateAfter", 0)) ; читаем ini
    If $updateDays > 0 Then
        ;проверим наличие файла
        If FileExists(@ScriptDir & "\Backups\update-check.txt") Then
            ; еще раз переформатируем дату
            $oldDate=_DateAdd("D", -$updateDays,$nowDate) ;отнимаем число дней от текущей даты
            $formatDate=StringSplit($oldDate,"/") ;форматируем дату
            $newDate=$formatDate[1]&$formatDate[2]&$formatDate[3]&@HOUR&@MIN&@SEC ;форматируем дату
            $upFileTime = Number(FileGetTime(@ScriptDir & "\Backups\update-check.txt", 0, 1))
            ; проверяем дату файла
            If  $upFileTime < $newDate Then ;время проверять обновления
                _doUpdate()
            EndIf
        Else ;файла нет - проверяем обновления
        _doUpdate()
        EndIf
    EndIf
 
 
Endif ;конец проверки не запущен ли уже браузер
 
$iBytes = Number(IniRead(@ScriptDir & "\Settings.ini", "Loader", "CacheSize", 10000000)) ; размер кеша
 
If StringLen($CmdLineRaw) > 0 Then ; если обнаружены ключи запуска, запустим браузер с ключами
    Run ('"' & @ScriptDir & '\App\Browser-bin\browser.exe" --disable-logging --metrics-recording-only --disk-cache-size='&$iBytes&' --user-data-dir="' & @ScriptDir & '\Data" '&$CmdLineRaw)
Else ; или просто с указанием папки профайла
    Run ('"' & @ScriptDir & '\App\Browser-bin\browser.exe" --disable-logging --metrics-recording-only --disk-cache-size='&$iBytes&' --user-data-dir="' & @ScriptDir & '\Data"')
EndIf
 
 
Func _doUpdate()
 
    ; создание папки обновления
    DirCreate( @ScriptDir&"\Update" )
    $sCurrentVersion =  FileGetVersion(@ScriptDir &"\App\Browser-bin\browser.exe")
    ; определение текущего Chrome
    $hw_open = _WinHttpOpen()
    $hw_connect = _WinHttpConnect($hw_open, "browser.yandex.ru")
    $h_openRequest = _WinHttpOpenRequest($hw_connect,"GET", "/download/distribinfo/","HTTP/1.1", "https://browser.yandex.ru/")
    _WinHttpSendRequest($h_openRequest)
    _WinHttpReceiveResponse($h_openRequest)
 
    Local $body=""
    Do
        $body&=_WinHttpReadData($h_openRequest)
    Until @error
    $verst = StringReplace( $body, '{"yandex_version":"','')
    $version = StringReplace( $verst, '"}','')
    ;$verar = StringSplit( $verst, '.',0)
 
    ; нет ответа от URL
    If Not $verst Then
        MsgBox( 0,"Yandex Updater","Ошибка запроса URL" )
        Exit
    EndIf
 
    _WinHttpCloseHandle($h_openRequest)
    _WinHttpCloseHandle($hw_connect)
    _WinHttpCloseHandle($hw_open)
 
    $update_url = "http://download.cdn.yandex.net/browser/yandex/ru/Yandex.exe"
    $verarr =  StringSplit($version, '.',0)
    $curarr =  StringSplit($sCurrentVersion, '.',0)
    $ver_total = $verarr[1]*10000+$verarr[2]*100+$verarr[3]
    $curr_total = $curarr[1]*10000 + $curarr[2]*100 +$curarr[3]
 
 
    If Number($ver_total > $curr_total) Then ;есть новая версия
        $confr1 = MsgBox(1,"Обнаружена новая версия", "Обновим браузер с версии " & $sCurrentVersion & " на версию " & $version & "?")
        If $confr1 == 1 Then
            FileDelete (@ScriptDir & "\Backups\update-check.txt") ;перемещаем старый файл в корзину
            $cFile = FileOpen(@ScriptDir & "\Backups\update-check.txt", 2)
            FileWrite($cFile, "А что это вы тут делаете?")
            FileClose($cFile)
            RunWait( @ScriptDir & "\Utils\wget.exe -N --tries=1 --no-check-certificate --content-disposition "&$update_url&"", @ScriptDir&"\Update" )
            ; находим первый файл в папке обновления
            $yandex_temp = FileFindFirstFile( @ScriptDir&"\Update\*.exe" )
            $yandex_setup = FileFindNextFile( $yandex_temp )
            FileClose( $yandex_setup )
            FileMove( @ScriptDir&"\Update\"&$yandex_setup, @ScriptDir&"\Update\yandex_latest.exe" )
            ; настройка распаковки Chrome
            RunWait( @ScriptDir & "\Utils\7za.exe x """&@ScriptDir&"\Update\yandex_latest.exe"" -o"""&@ScriptDir&"\Update""" )
 
            ; распаковка chrome.7z
            RunWait(@ScriptDir & "\Utils\7za.exe x """&@ScriptDir&"\Update\browser.7z"" -o"""&@ScriptDir&"\Update\extracted""" )
 
 
            DirRemove(@ScriptDir&"\App\Browser-bin\" & $sCurrentVersion,1)
 
 
            $first = FileFindFirstFile( @ScriptDir&"\Update\extracted\Browser-bin\*.*" )
            $versions_ordner = FileFindNextFile( $first )
            FileClose( $first )
            ; НАЧАЛО удаляем мусор из распакованной дирректории
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\show-dlg.exe" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\service_update.exe" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\yupdate-exec.exe" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\hips_update.exe" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\hips_update_x64.exe" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\elevation_service.exe" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\cs.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\de.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\en-US.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\en-US.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\es.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\fr.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\it.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\ja.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\pt-BR.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\pt-PT.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\tr.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\uk.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\zh-CN.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\zh-TW.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\uz.pak" )
            FileDelete( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\Locales\kk.pak" )
            DirRemove( @ScriptDir &"\Update\extracted\Browser-bin\"&$versions_ordner&"\voiceactivation", 1 )
            ; КОНЕЦ удаляем мусор из распакованной дирректории
 
            DirCopy( @ScriptDir&"\Update\extracted\Browser-bin\"&$versions_ordner&"\", @ScriptDir&"\App\Browser-bin\"&$versions_ordner&"\", 1 )
 
            ; остальные файлы и папки [код оригинального скрипта]
            FileCopy( @ScriptDir &"\Update\extracted\Browser-bin\browser.exe", @ScriptDir&"\App\Browser-bin\" ,1 )
            FileCopy( @ScriptDir &"\Update\extracted\Browser-bin\chrome_proxy.exe", @ScriptDir&"\App\Browser-bin\" ,1 )
; лишние             FileCopy( @ScriptDir &"\Update\extracted\Browser-bin\wow_helper.exe", @ScriptDir&"\App\Browser-bin\" ,1 )
; лишние             FileCopy( @ScriptDir &"\Update\extracted\Browser-bin\clidmgr.exe", @ScriptDir&"\App\Browser-bin\" ,1 )
; лишние             FileCopy( @ScriptDir &"\Update\extracted\Browser-bin\clids_yandex.xml", @ScriptDir&"\App\Browser-bin\" ,1 )
            DirCopy( @ScriptDir &"\Update\extracted\YandexDictionaries", @ScriptDir&"\App\Browser-bin\YandexDictionaries" ,1 )
 
            DirRemove( @ScriptDir &"\Update\" , 1 )
 
            ; выводим окно, когда провели обновление
            MsgBox( 0,"Yandex Updater","Обновление Yandex завершено" )
 
            ; завершение обновления
            Return true
 
        EndIf
    EndIf
    DirRemove( @ScriptDir &"\Update\" , 1 )
EndFunc
 


Всего записей: 155 | Зарегистр. 24-05-2006 | Отправлено: 09:45 26-01-2020 | Исправлено: HORiSi, 09:49 26-01-2020
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Яндекс.Браузер | Yandex.Browser (часть 1)
Maz (02-02-2024 15:35): Яндекс.Браузер | Yandex.Browser (часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru