Chrome/Firefox extension "Share to discourse"

Это сложная тема… как мне добавлять полезные ссылки в Discourse одной кнопкой.

Думаю, логика не сильно отличается от кнопки «Опубликовать в Discourse» в меню «Поделиться» на iOS.

Это можно запрограммировать следующим образом:

  • Получить входные данные из меню «Поделиться»; имя кнопки в этом меню будет именем ярлыка.
  • Извлечь текст из входных данных ярлыка.
  • Текст «ook» (часть слова Look, как в фразе «Look what i found on» — «Посмотрите, что я нашёл на»).
  • Текст «I» (как в фразе «I found» — «Я нашёл»).
  • Текст «Source:» (как в указании источника URL).
  • Текст «heck» (часть слова Check, как в фразе «Check out what i found» — «Посмотрите, что я нашёл»).
  • Если какой-либо из вышеуказанных текстов совпадает с входным текстом:
    • Заменить «Source:» на «just want a link» (просто хочу ссылку).
    • Извлечь URL из этого.
    • Извлечь хост.
    • Извлечь путь.
    • Извлечь параметры запроса (query).
    • Закодировать хост, путь, «?» и параметры запроса как URL.
    • Сформировать текст: https://yourdomain.co.uk/new-topic?title=Shared%20from%20iOS&body=https://[закодированный URL]
    • Открыть этот текст в Safari.

Иначе:

  • Если входной текст ярлыка содержит «g.co»:
    • Найти совпадение с регулярным выражением https?://(.*) в тексте.
    • Получить группу с индексом 1 в совпадениях.
    • Сформировать текст: https://yourdomain.co.uk/new-topic?title=Shared%20from%20iOS&body=https://[найденный текст]
    • Открыть этот текст в Safari.

Иначе:

  • Если входной текст ярлыка содержит «youtube»:
    • Извлечь хост.
    • Извлечь путь.
    • Извлечь параметры запроса.
    • Закодировать.
    • Сформировать текст URL форума.
    • Открыть в Safari.

Иначе:

  • Текст — это просто текст.
    • Пусть телом сообщения будет сам текст.

:rofl:

1 лайк