You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
4.8 KiB
Plaintext
136 lines
4.8 KiB
Plaintext
11 months ago
|
;---ENVIRONMENT---------------------------------------------------------------------
|
||
|
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
|
||
|
;#Warn ; Enable warnings to assist with detecting common errors.
|
||
|
;DetectHiddenWindows, On
|
||
|
#SingleInstance, Force
|
||
|
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
|
||
|
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
|
||
|
;SetKeyDelay, 500
|
||
|
CoordMode, ToolTip, Screen
|
||
|
CoordMode, Mouse, Screen
|
||
|
;#NoTrayIcon
|
||
|
|
||
|
|
||
|
; Menu, Tray, Icon, %A_scriptDir%\Assets\LBRY-Process-Killer.ico
|
||
|
|
||
|
;---Notes/Extra Info/#Includes------------------------------------------------------
|
||
|
|
||
|
|
||
|
;---VARIABLES-----------------------------------------------------------------------
|
||
|
global DiscordWebhookBotURL
|
||
|
|
||
|
PassedParameter = %1%
|
||
|
if(PassedParameter = "Kill")
|
||
|
ExitApp
|
||
|
|
||
|
IniRead, DiscordWebhookBotURL, %A_scriptDir%\..\Settings.ini, General, DiscordWebhookBotURL, %A_Space%
|
||
|
if(DiscordWebhookBotURL = ""){
|
||
|
; msgbox, Unable to Read Settings.ini for DiscordWebhookBotURL.`nProgram will not be able to post seed status to Discord
|
||
|
; ExitApp
|
||
|
}
|
||
|
|
||
|
|
||
|
;---MAIN SCRIPT---------------------------------------------------------------------
|
||
|
lbrynetlog_FP = C:\Users\%A_Username%\AppData\Local\lbry\lbrynet\lbrynet.log
|
||
|
if(!FileExist(lbrynetlog_FP)){
|
||
|
Message = lbrynet.log not found in the usual location. `nPlease submit issue on gitea to add functionality for custom locations.`nClick OK to open gitea page.
|
||
|
msgbox % Message
|
||
|
run, https://git.zinchuk.xyz/yuriy/LBRY-Process-Killer
|
||
|
ExitApp
|
||
|
}
|
||
|
|
||
|
|
||
|
FileRead, lbrynetlogContents, C:\Users\%A_Username%\AppData\Local\lbry\lbrynet\lbrynet.log
|
||
|
if(lbrynetlogContents = ""){
|
||
|
Message = LBRYNet.log exists at normal location, but is currently empty. `nPlease submit issue on gitea about this error message `nClick OK to open gitea page and exit.
|
||
|
msgbox % Message
|
||
|
run, https://git.zinchuk.xyz/yuriy/LBRY-Process-Killer
|
||
|
ExitApp
|
||
|
}
|
||
|
|
||
|
; Msgbox % "lbrynetlogContents: " lbrynetlogContents
|
||
|
|
||
|
LogContentsArray := StrSplit(lbrynetlogContents, "`n")
|
||
|
OriginalArrayLenght := LogContentsArray.Length() ; Save total number of items in the array
|
||
|
|
||
|
Loop, 45 { ; 3.75 hours, if not complete by this time then exit
|
||
|
sleep, 300000 ; 5 minutes
|
||
|
; sleep, 60000
|
||
|
if(A_index = 6 OR A_index = 12 OR A_index = 24 OR A_index = 36 OR A_index = 48){ ; 30, 60, 120 minutes
|
||
|
Message = LBRY: Still waiting for Video to finish Uploading to Reflectors
|
||
|
PostProgressToDiscord(Message)
|
||
|
}
|
||
|
|
||
|
FileRead, lbrynetlogContents, C:\Users\%A_username%\AppData\Local\lbry\lbrynet\lbrynet.log
|
||
|
UpdatedLogContentsArray := StrSplit(lbrynetlogContents, "`n")
|
||
|
ArrayLenght := UpdatedLogContentsArray.Length() ; Count number of individual rows
|
||
|
|
||
|
Loop, %ArrayLenght% {
|
||
|
if(A_index < %OriginalArrayLenght%)
|
||
|
Continue ; Skip all lines that that were present in the original .log
|
||
|
|
||
|
CurrentLineContents := UpdatedLogContentsArray[A_index]
|
||
|
|
||
|
if(InStr(CurrentLineContents, "Finished sending reflector")){ ; Upload Complete Text on lbrylog
|
||
|
SeedingComplete := 1 ; mark seeding as complete and go to next loop
|
||
|
OriginalArrayLenght := A_index ; set variable to equal this loop number. So all lines up to this one get skipped next loop round
|
||
|
Continue
|
||
|
}
|
||
|
|
||
|
if(InStr(CurrentLineContents, "Sent reflector blob")){ ; Means "Still Uploading" in LBRY API
|
||
|
SeedingComplete := 0 ; mark seeding as incomplete as there is still an upload in progress
|
||
|
Continue
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
if(SeedingComplete){
|
||
|
Process, Close, LBRY.exe ; terminate LBRY if it's running
|
||
|
|
||
|
if(DiscordWebhookBotURL){
|
||
|
Message = LBRY: Video Finished Seeding to Reflectors. LBRY Process Killed.
|
||
|
PostProgressToDiscord(Message)
|
||
|
}
|
||
|
|
||
|
ExitApp
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
;---FUNCTIONS-----------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
|
||
|
PostProgressToDiscord(Message){
|
||
|
; Need to transform the message into a json string:
|
||
|
FormatTime, CurrentTime, YYYYMMDDHH24MISS, hh:mm
|
||
|
; Message := "-----------" . CurrentTime . "-----------" . "`n" . Message ; add a ------- to the top of the message to help split them up visually on discord
|
||
|
|
||
|
; Escape Backslashes
|
||
|
Message := StrReplace(Message, "", "\/")
|
||
|
|
||
|
; Escape quotation marks
|
||
|
SingleQuotationmark = "
|
||
|
ReplacedQuote = \"
|
||
|
Message := StrReplace(Message, SingleQuotationmark, ReplacedQuote)
|
||
|
|
||
|
; Escape New Character
|
||
|
Message := StrReplace(Message, "`n", "\n")
|
||
|
|
||
|
; Convert into json string
|
||
|
JsonString=
|
||
|
(
|
||
|
{
|
||
|
"content": "%Message%"
|
||
|
}
|
||
|
)
|
||
|
try WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
|
||
|
try WebRequest.Open("POST", DiscordWebhookBotURL, false)
|
||
|
try WebRequest.SetRequestHeader("Content-Type", "application/json")
|
||
|
try WebRequest.Send(JsonString)
|
||
|
}
|