1 (изменено: Alectric, 2023-11-02 17:19:04)

Тема: AHK: Прочитать текстовый файл с облака mail

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

  ; url := "https://docs.google.com/document/export?format=txt&id=14LyJ4jBopNCizmhM79mGR-2kqo5SqXErcMrzRmyD4zk"
  url := "https://cloud.mail.ru/public/WpTL/K1Re2hSmZ"
  WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
  WebRequest.Open("GET", url, false)
  WebRequest.Send()
  text:=WebRequest.Responsetext
  return text
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

2

Re: AHK: Прочитать текстовый файл с облака mail

Наверно, нужна прямая ссылка на файл?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Прочитать текстовый файл с облака mail

Нашел в отладке майкросовт эджа некую строчку "Полезные данные".
Это может как-то помочь?

Microsoft Edge пишет:

p=cloud&t=app_download-suspicious_public&v=0&i=list-length:1&rnd=0.09475270227986399&x-page-id=grGDnQ2i0B

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

4

Re: AHK: Прочитать текстовый файл с облака mail

teadrinker
Её возможно получить?

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

5

Re: AHK: Прочитать текстовый файл с облака mail

Не знаю, гуглите.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6 (изменено: Alectric, 2023-11-02 20:41:48)

Re: AHK: Прочитать текстовый файл с облака mail

Удалось получить прямую ссылку на файл.

https://forum.torrminatorr.com/viewtopi … mp;t=27716

+ открыть спойлер
mrtrollson пишет:

Links look like this: https://cloud.mail.ru/public/<ID>
with <ID> having the form <PART1>/<PART2> but that's not important.

First parse the HTML page to find something like
"weblink_get":
For example with this command:
curl -A '' https://cloud.mail.ru/public/<ID> | grep -oP '"weblink_get":.*?"url":\s*"(https:[^"]+)'

With this you should find a URL, which we will call the base url. If there was just one file shared in the link, you can get a DLL like so:
<base url>/<ID>

Otherwise, go to https://cloud.mail.ru/api/v2/folder?weblink=<ID> to get a listing of the files and directories there. This is a JSON file. Everything is in body > list. The type field tells you if it's a file or directory, and you get an ID in the weblink field. You can then get a DDL for a particular file with the method above, the DLL would be <base url>/<ID> with <ID> the ID you got from the weblink field.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

7

Re: AHK: Прочитать текстовый файл с облака mail

Обратите внимание, что ссылка временная. Сейчас уже не работает.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Прочитать текстовый файл с облака mail

Выходит у меня ничего не получится?
Ничего не понимаю в html - слишком много информации.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

9

Re: AHK: Прочитать текстовый файл с облака mail

Почему не получится, можно же каждый раз искать такую ссылку в html-коде страницы. Сначала скачиваете html страницы загрузки, находите в нём нужную ссылку, добавляете ID:

downloadPageUrl := "https://cloud.mail.ru/public/WpTL/K1Re2hSmZ"

html := WebRequest(downloadPageUrl)
RegExMatch(html, "weblink_get.*?""(http[^""]+)", url)
len := WebRequest(url1 . RegExReplace(downloadPageUrl, ".*public"),,,, data)

FileOpen(A_Desktop . "\MyFile.docx", "w").RawWrite(data, len)

WebRequest(url, method := "GET", HeadersArray := "", body := "", ByRef outData := "", ByRef error := "") {
   Whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
   Whr.Open(method, url, true)
   for name, value in HeadersArray
      Whr.SetRequestHeader(name, value)
   Whr.Send(body)
   Whr.WaitForResponse()
   status := Whr.status
   if (status != 200)
      error := "HttpRequest error, status: " . status
   Arr := Whr.responseBody
   pData := NumGet(ComObjValue(arr) + 8 + A_PtrSize)
   length := arr.MaxIndex() + 1
   if !IsByRef(outData)
      ret := StrGet(pData, length, "UTF-8")
   else {
      VarSetCapacity(outData, length)
      DllCall("RtlMoveMemory", "Ptr", &outData, "Ptr", pData, "Ptr", length)
      ret := length
   }
   Return ret
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Прочитать текстовый файл с облака mail

То есть функция WebRequest() скачивает любую интернет страницу и без всяких ошибок? Или для разных сайтов её нужно как-то по особенному настраивать (HeadersArray, body)?

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

11

Re: AHK: Прочитать текстовый файл с облака mail

Если страница общедоступная, html должно скачиваться без параметров.
Вот так можно ещё имя файла получить:

downloadPageUrl := "https://cloud.mail.ru/public/WpTL/K1Re2hSmZ"

html := WebRequest(downloadPageUrl)

if !RegExMatch(html, "weblink_get.*?""(http[^""]+)", url) {
   MsgBox Ссылка на файл не найдена
   Return
}
if !RegExMatch(html, """serverSideFolders"".*?""name"":""([^""]+)", fileName) {
   MsgBox Имя файла не найдено
   Return
}
len := WebRequest(url1 . RegExReplace(downloadPageUrl, ".*public"),,,, data)

FileOpen(A_Desktop . "\" . fileName1, "w").RawWrite(data, len)

WebRequest(url, method := "GET", HeadersArray := "", body := "", ByRef outData := "", ByRef error := "") {
   Whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
   Whr.Open(method, url, true)
   for name, value in HeadersArray
      Whr.SetRequestHeader(name, value)
   Whr.Send(body)
   Whr.WaitForResponse()
   status := Whr.status
   if (status != 200)
      error := "HttpRequest error, status: " . status
   Arr := Whr.responseBody
   pData := NumGet(ComObjValue(arr) + 8 + A_PtrSize)
   length := arr.MaxIndex() + 1
   if !IsByRef(outData)
      ret := StrGet(pData, length, "UTF-8")
   else {
      VarSetCapacity(outData, length)
      DllCall("RtlMoveMemory", "Ptr", &outData, "Ptr", pData, "Ptr", length)
      ret := length
   }
   Return ret
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

12

Re: AHK: Прочитать текстовый файл с облака mail

Спасибо большое. Это все облегчает.
По сути на скачанном html можно найти все необходимое, правда читать его трудновато - сплошное полотно текста и ссылок без форматирования.

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

13

Re: AHK: Прочитать текстовый файл с облака mail

Ну, отформатировать-то можно в приличном редакторе, VSCode, например.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

14

Re: AHK: Прочитать текстовый файл с облака mail

А возможно прочитать файл не скачивая его?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

15

Re: AHK: Прочитать текстовый файл с облака mail

Ах, забываю про &, все ок, спасибо за код.

MsgBox % StrGet(&data, len, "UTF-8")
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

16

Re: AHK: Прочитать текстовый файл с облака mail

Если это текстовый файл, то не нужно получать через бинарные данные.

MsgBox % WebRequest(url1 . RegExReplace(downloadPageUrl, ".*public"))
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17

Re: AHK: Прочитать текстовый файл с облака mail

А кто нибудь знает надёжные  ресурсы в РФ чтобы файлу по ссылке давать своё имя, наподобии гитхаб.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

18

Re: AHK: Прочитать текстовый файл с облака mail

Такое есть: https://telegra.ph/serzh82saratov-11-29

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

19

Re: AHK: Прочитать текстовый файл с облака mail

Что то вроде обсуждали его, там дата в ссылке не меняется после редактирования?

Ещё варианты?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

20

Re: AHK: Прочитать текстовый файл с облака mail

Сам не пользовался, больше не знаю.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

21

Re: AHK: Прочитать текстовый файл с облака mail

serzh82saratov

Ссылка после редактирования не меняется + api есть.

22

Re: AHK: Прочитать текстовый файл с облака mail

Я теперь к маил облаку склоняюсь, с ним через файловые команды можно работать, и апи не нужны.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

23

Re: AHK: Прочитать текстовый файл с облака mail

Сейчас подумал, что не плохо бы иметь статистику, с какого айпи и когда скачивали, в маил облаке такого нет.
Со статистикой интересно бывает что то.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

24 (изменено: inseption86, 2024-01-07 04:41:50)

Re: AHK: Прочитать текстовый файл с облака mail

serzh82saratov у телеграфа есть количество просмотров ссылки. Я на работе использую его, формирую отчет и если у клиента не просмотрена ссылка( я ее сделал в виде qr коба на договоре) в течении суток, его результат соо щается по телефону, который он оставил при регистрации.

25

Re: AHK: Прочитать текстовый файл с облака mail

inseption86, пожалуйста используйте точки в конце предложений.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

26

Re: AHK: Прочитать текстовый файл с облака mail

inseption86 пишет:

у телеграфа есть количество просмотров ссылки

Спасибо, но мне количество не нужно.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui