Hi folks,

I reached out to the Lemmy admins about taking over the community from the previous moderator (as they’d become inactive).

I’m not making any big changes or anything. The biggest news is that I will be hooking up [email protected] (which you may have seen in other gaming communities, some I moderate some I don’t 🙂) to post Last Epoch news and keep the community up to date!

I’ll work on getting a banner up and an icon in the coming days to make things look a bit nicer around these parts as well.

Thanks for reading, I hope you find Auto Post Bot helpful going forward, and hope everyone has a great day!

  • Dark Arc@lemmy.worldOPM
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    8 months ago

    I have a custom Python library based back end, that itself is based on Tornado and Beautiful Soup. It makes it pretty easy to script up inputs and outputs for various kinds of sources and destinations. The Auto Post Bot is actually both a Lemmy bot and a Telegram bot.

    I’ve thought about open sourcing it … but I’m mildly concerned about it being abused to make spam bots (it’s extremely efficient and capable of hitting rate limiting systems and perfectly timing its next post to what they’ll accept) so I’ve held off 😅 Well, that and I may want to rework some parts of it…

    import asyncio
    import lemur_repost
    
    def create_test_pool(lemmy_bot: lemur_repost.LemmyBot):
      pool = lemur_repost.RepostPool(
        lemur_repost.PersistentStateStore(Path('bar'))
      )
    
      pool.add_input(lemur_repost.RSSFeedAgent(
        'https://store.steampowered.com/feeds/news/app/594650/',
        {
          'cc': 'US',
          'l': 'english',
          'snr': '1_2108_9__2107'
        },
        DEFAULT_RSS_POLLING_RATE_POLICY
      ))
    
      pool.add_output(lemur_repost.LemmyCommunityPostAgent(
        lemmy_bot,
        LEMMY_BOT_PLAYGROUND_ID
      ))
    
      return pool
    
    def main():
      lemmy_bot = lemur_repost.LemmyBot(
        'https://social.packetloss.gg',
        'Testing_Bot',
        '<password>',
        lemur_repost.PollingRatePolicy(
          timedelta(
            minutes = 10
          )
        )
      )
    
      test_pool = create_test_pool(lemmy_bot)
    
      asyncio.run(lemur_repost.run_pools([
        test_pool
      ]))
    
    main()
    

    I feel like it was kind of, maybe, a mistake to give each pool its own storage (edit: actually that’s probably more a limitation of how I’ve been using the library than the library itself … it’s always fun when “yesterday me” was smarter than “today me”). I’d also like to make it possible to write bridges of sorts … which was an original goal (e.g., you could use this to bridge a Discord, Telegram, and Matrix chat + tie in news feeds from a dozen places in a handful of lines).