RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1443475
Accepted
mrBars1k
mrBars1k
Asked:2022-08-28 17:59:23 +0000 UTC2022-08-28 17:59:23 +0000 UTC 2022-08-28 17:59:23 +0000 UTC

机器人如何通过 url 在 telegra.ph 中插入图像?

  • 772

我需要机器人获取图像的 url 地址,例如从 discord 中,并将其插入到 telegra.ph 文章中,它将 url 转换为图像。如果这是手动完成的,那么您需要插入一个链接并按 Enter,只有这样图像才会成为图像,而不是链接。

但是,如果您只是插入一个链接,它将仍然是文本。所以机器人插入了网址,但链接并没有变成图片。

我个人没有找到合适的 API 或模块,也许我是盲人。帮助找到解决方案。

一个工作代码的例子,但有一个问题:

from telegraph_api import Telegraph
import asyncio
import random

random_1 = random.randint(99999, 99999999999)
random_2 = random.randint(99999, 99999999999)

async def main():
    telegraph = Telegraph()
    # Новый аккаунт
    await telegraph.create_account(random_2, author_name=random_1)
    # Статья
    new_page = await telegraph.create_page(
        random_1,
        "https://media.discordapp.net/attachments/1013153256215691344/1013153595480342658/FZ9Pp5LaUAAkNHa_.jpg"
    )

    # Результат
    print(new_page.url)


asyncio.run(main())
python
  • 2 2 个回答
  • 61 Views

2 个回答

  • Voted
  1. Danil Apsadikov
    2022-08-28T19:31:56Z2022-08-28T19:31:56Z

    要附加图片,您首先需要从 URL 下载图片,然后使用 API 上传图片文件。这可以这样做:

    def telegraph_file_upload(path_to_file):
        '''
        Sends a file to telegra.ph storage and returns its url
        Works ONLY with 'gif', 'jpeg', 'jpg', 'png', 'mp4' 
        
        Parameters
        ---------------
        path_to_file -> str, path to a local file
        
        Return
        ---------------
        telegraph_url -> str, url of the file uploaded
    
        >>>telegraph_file_upload('test_image.jpg')
        https://telegra.ph/file/16016bafcf4eca0ce3e2b.jpg    
        >>>telegraph_file_upload('untitled.txt')
        error, txt-file can not be processed
        '''
        file_types = {'gif': 'image/gif', 'jpeg': 'image/jpeg', 'jpg': 'image/jpg', 'png': 'image/png', 'mp4': 'video/mp4'}
        file_ext = path_to_file.split('.')[-1]
        
        if file_ext in file_types:
            file_type = file_types[file_ext]
        else:
            return f'error, {file_ext}-file can not be proccessed' 
          
        with open(path_to_file, 'rb') as f:
            url = 'https://telegra.ph/upload'
            response = requests.post(url, files={'file': ('file', f, file_type)}, timeout=1)
        
        telegraph_url = json.loads(response.content)
        telegraph_url = telegraph_url[0]['src']
        telegraph_url = f'https://telegra.ph{telegraph_url}'
        
        return telegraph_url
    

    该函数将返回上传到电报的图像的链接。创建记录时需要使用它

    来源:https ://stackoverflow.com/a/70307283/11695435

    升级版:

    您不能将文件上传到电报,而只需指定互联网上图片的链接,电报将下载图片本身并将其附加到消息中。

    来源:https ://core.telegram.org/bots/api#sendphoto

    • 1
  2. Best Answer
    mrBars1k
    2022-08-28T20:46:06Z2022-08-28T20:46:06Z

    像这样解决它:

    
    from telegraph import Telegraph, upload
    import random
    
    random_article = random.randint(99999, 99999999999)
    random_author = random.randint(99999, 99999999999)
    
    
    telegraph = Telegraph()
    telegraph.create_account(random_article, author_name=random_author)
    
    def post(title, content):
        response = telegraph.create_page(random_article, html_content = content)
        return 'https://telegra.ph/{}'.format(response['path'])
    
    
    postlink = post('random_article', '<img src="https://media.discordapp.net/attachments/1013153256215691344/1013153595480342658/FZ9Pp5LaUAAkNHa_.jpg">')
    
    print(postlink)
    
    • 0

相关问题

  • 是否可以以某种方式自定义 QTabWidget?

  • telebot.anihelper.ApiException 错误

  • Python。检查一个数字是否是 3 的幂。输出 无

  • 解析多个响应

  • 交换两个数组的元素,以便它们的新内容也反转

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5