1 (изменено: xDes, 2018-03-19 20:19:05)

Тема: AHK: Telegram Постинг

Привет всем есть вот такой код, точнее 2 разных но прям тех что нужно. Я уже запарился не могу добиться их склеить в единое целое
Суть того что нужно, скрипт ищет в *.txt фале строку, копирует ее, и постит в телегу, и через некоторое время он повторяет процесс со сл. строкой.
Сейчас он ищет строки и пишет их (например в блокнот

Random, rand, 1000, 2000
Loop, Read, s.txt
{
	if (RegExMatch(A_LoopReadLine, "(.*)(/*)", out))
	{
		send, %A_LoopReadLine%
		sleep rand
	}
}

) просто идеально, так как и должно, а вот в телегу отправить не может. Отправляет то что в кавычках

MsgBox(1,2,"118ss2")

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

#NoEnv 
; #Warn  ;
SendMode Input  ;
SetWorkingDir %A_ScriptDir%  ;

Random, rand, 3000, 4000
FileRead, 11, s.txt
{
	if (RegExMatch(A_LoopReadLine, "(.*)(/*)", out))
	{
		MsgBox(1,2,"118ss2")
		sleep rand
	}
}
MsgBox(Option,EmojiPosition,Text)
{
	TelegramBotToken = ****************************
	TelegramBotChatID = **********
		
	loop 3
	{
		UrlDownloadToFile https://api.telegram.org/bot%TelegramBotToken%/sendmessage?chat_id=%TelegramBotChatID%&text=%Text%, %A_ScriptDir%\check.rups
		sleep 1000
		ifexist %A_ScriptDir%\check.rups
		{
			break
		}
		if A_index = 3
		{
			MsgBox, 16,, something went wrong with sending
		}
	}
	filedelete %A_ScriptDir%\check.rups
}



2

Re: AHK: Telegram Постинг

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

У Вас, для отправки сообщения используется UrlDownloadToFile, предназначенный для загрузки файлов из интернета.

В отправке сообщений, я использую parse_mode = HTML для удобства, отправляя методом POST на API, JSON с текстом и настройками сообщения, через WinHttpRequest. Пример:


bot_token := "бот_идентификатор"
Global chat_id := 123456789
Global msg_api := Format("https://api.telegram.org/bot{1}/sendMessage", bot_token)

PostMsg("<b>Привет мир!!!</b>\n<i>Категория №1</i>\n<code>IP = 192.168.0.1</code>")

PostMsg(msg_text, parse_mode := "HTML") {
	WinHttpObj := ComObjCreate("WinHttp.WinHttpRequest.5.1")
	WinHttpObj.Open("POST", msg_api)
	WinHttpObj.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0")
	WinHttpObj.SetRequestHeader("Content-Type", "application/json; charset=UTF-8")
	mJson := Format("{ ""chat_id"": ""{1}"", ""text"": ""{2}"", ""parse_mode"" : ""{3}"" }", chat_id, msg_text, parse_mode)
	WinHttpObj.Send(mJson)
}

3

Re: AHK: Telegram Постинг

KusochekDobra

Боже, спасибо тебе огромное добрый человек!!!!!!!

4

Re: AHK: Telegram Постинг

А можно ли как-то автоматизировать сохранение из Telegram?

5

Re: AHK: Telegram Постинг

Опишите конкретней, что под этим имеется ввиду?

6 (изменено: DD, 2018-04-15 15:13:10)

Re: AHK: Telegram Постинг

В смысле: сохранение содержимого каналов Telegram, из самой программы. Обычным образом это делается частичным выделением, копированием, потом сбрасыванием выделения и повторением того же самого, — но нет ли способа получить сразу всё за раз?

7

Re: AHK: Telegram Постинг

Насколько помню, бот не имеет доступа к содержимому канала, так что копировать он может только то, что отправляет.