#Requires AutoHotkey v2.0 momentsPath := IniRead("trimUploader.ini", "location", "momentsPath", "") if (momentsPath = "") { momentsPath := DirSelect() } trimPattern := IniRead("trimUploader.ini", "location", "trimPattern", "*_trim.mp4") ziplineURL := IniRead("trimUploader.ini", "location", "ziplineURL", "PROVIDE ZIPLINE URL") ziplineFolder := IniRead("trimUploader.ini", "location", "ziplineFolder", "PROVIDE FOLDER ID") ziplineToken := IniRead("trimUploader.ini", "location", "ziplineToken", "PROVIDE ZIPLINE TOKEN") IniWrite(momentsPath, "trimUploader.ini", "location", "momentsPath") IniWrite(trimPattern, "trimUploader.ini", "location", "trimPattern") IniWrite(ziplineURL, "trimUploader.ini", "location", "ziplineURL") IniWrite(ziplineFolder, "trimUploader.ini", "location", "ziplineFolder") IniWrite(ziplineToken, "trimUploader.ini", "location", "ziplineToken") loop { uploadedURLs := "" uploadedFiles := 0 Loop Files momentsPath "\" trimPattern, "F" { fileSize := 0 while (fileSize < FileGetSize()) { Sleep(200) fileSize := FileGetSize() } ; ; Build curl command ; cmd := 'curl -s -H "Authorization: ' ziplineToken '" ' ; cmd .= '-H "x-zipline-original-name: true" ' ; cmd .= '-H "x-zipline-p-format: name" ' ; cmd .= '-H "x-zipline-folder: ' ziplineFolder '" ' ; cmd .= '-H "x-zipline-filename: ' StrReplace(A_LoopFileName, ".mp4", "") '" ' ; cmd .= '-F "file=@' A_LoopFileFullPath ';type=video/mp4" ' ; cmd .= '"' ZiplineURL '/api/upload"' ; ; MsgBox(cmd) ; ; Run curl and capture output ; RunWait(A_ComSpec " /c " cmd " | clip", , "Hide") ; output := A_Clipboard ; Extract URL from JSON ; if RegExMatch(output, '"url":"(.*?)"', &m) { ; url := m[1] ; uploadedURLs .= url "`n" ; uploadedFiles++ FileCopy(A_LoopFileFullPath, "\\192.168.0.20\nextcloud\fireshare\fireshare_videos\*.*") FileDelete(A_LoopFileFullPath) ; try { ; } catch Error { ; } ; } else { ; MsgBox "Failed to extract URL.`nResponse:`n" output ; } } ; if ( not uploadedURLs = "") { ; A_Clipboard := uploadedURLs ; TrayTip "Zipline Upload", "Uploaded " uploadedFiles " file(s)", 1 ; } Sleep(5000) }