Skip to content

Instantly share code, notes, and snippets.

@Slavenin
Last active February 27, 2019 08:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Slavenin/0ad5406a644ac0bd92e4d1467e3a8da7 to your computer and use it in GitHub Desktop.
Save Slavenin/0ad5406a644ac0bd92e4d1467e3a8da7 to your computer and use it in GitHub Desktop.
case entities do
nil ->
text
entities ->
Enum.filter(entities, fn
%{type: "text_link"} -> true
_e -> false
end)
|> Enum.reduce({0, []}, fn %{length: length, offset: offset, url: url}, {prev, acc} ->
bytes =
Exmoji.Scanner.scan(String.slice(text, 0, offset))
|> Enum.reduce(0, fn %Exmoji.EmojiChar{unified: code} = e, acc ->
acc + String.length(Exmoji.unified_to_char(code))
end)
# |> IO.inspect()
textLink =
if(length == 2) do
"\u200b\u200b"
else
String.slice(text, offset, length)
end
IO.inspect("prev off #{prev}, tlgm off #{offset}, end prev off #{offset - prev}")
el = "#{String.slice(text, prev, offset - prev)}[#{textLink}](#{url})"
IO.inspect("#{el}")
{offset + length, acc ++ [el]}
end)
end
"prev off 0, tlgm off 0, end prev off 0"
"[​​](https://telegra.ph/file/f98c95e4afab855e3246f.mp4)"
"prev off 2, tlgm off 429, end prev off 427"
"Салют дамы и господа👽\n\nЗа последние сутки нас стало примерно на 150 человек больше, я рад всех приветствовать и по этому поводу расскажу про эксперимент который я проводил. Мы же здесь собрались чтобы создавать свои великолепные каналы, рубить на этом бабло кайфовать от этого процесса, ну а как иначе?🤷‍♂️\n\nНедавно писал, что экспериментирую над продвижением через видео в сториз инстаграм и сделал полезный для нас с вами вывод[. \n\nНа](http://t.me/grampro/136)"
"prev off 435, tlgm off 529, end prev off 94"
" этот раз я внес коррективы на начал параллельно продвигать пост в инсте через сториз с обычн[ой картинкой и ви](https://www.instagram.com/p/Bt5ok5JnRJy/?utm\\_source=ig\\_share\\_sheet&igshid=ac64r1g7890j)"
%Nadia.Model.Message{
audio: nil,
caption: nil,
channel_chat_created: nil,
chat: %Nadia.Model.Chat{
first_name: "Max",
id: 111_222_3333,
last_name: nil,
photo: nil,
title: nil,
type: "private",
username: nil
},
contact: nil,
date: 1_551_253_451,
delete_chat_photo: nil,
document: nil,
edit_date: nil,
entities: [
%{
length: 2,
offset: 0,
type: "text_link",
url: "https://telegra.ph/file/f98c95e4afab855e3246f.mp4"
},
%{length: 6, offset: 429, type: "text_link", url: "http://t.me/grampro/136"},
%{
length: 17,
offset: 529,
type: "text_link",
url:
"https://www.instagram.com/p/Bt5ok5JnRJy/?utm\\_source=ig\\_share\\_sheet&igshid=ac64r1g7890j"
},
%{length: 9, offset: 788, type: "hashtag"}
],
forward_date: 1_550_316_828,
forward_from: nil,
forward_from_chat: %{
id: -1_001_189_196_888,
title: "Gram | Кухня Телеграм",
type: "channel",
username: "grampro"
},
from: %Nadia.Model.User{first_name: "Max", id: 111_222_3333, last_name: nil, username: nil},
group_chat_created: nil,
left_chat_member: nil,
location: nil,
message_id: 705,
migrate_from_chat_id: nil,
migrate_to_chat_id: nil,
new_chat_member: nil,
new_chat_photo: [],
new_chat_title: nil,
photo: [],
pinned_message: nil,
reply_to_message: nil,
sticker: nil,
supergroup_chat_created: nil,
text:
"​​Салют дамы и господа👽\n\nЗа последние сутки нас стало примерно на 150 человек больше, я рад всех приветствовать и по этому поводу расскажу про эксперимент который я проводил. Мы же здесь собрались чтобы создавать свои великолепные каналы, рубить на этом бабло кайфовать от этого процесса, ну а как иначе?🤷♂️\n\nНедавно писал, что экспериментирую над продвижением через видео в сториз инстаграм и сделал полезный для нас с вами вывод. \n\nНа этот раз я внес коррективы на начал параллельно продвигать пост в инсте через сториз с обычной картинкой и видео которое вы видите в этом посте, на одну и ту же аудиторию. \n\nТак вот, видос дает подписчиков на 20-40% дешевле чем изображение, при условии что это не просто прикольная анимация но и полезный контент. \n\nТебе была полезна эта инфа? \n\n#про_Gram",
venue: nil,
video: nil,
voice: nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment