this post was submitted on 04 Apr 2024
4 points (100.0% liked)

Last Epoch

141 readers
1 users here now

A community for Last Epoch, an arpg by Eleventh Hour Games.

Rules


Useful Links

founded 1 year ago
MODERATORS
 

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!

you are viewing a single comment's thread
view the rest of the comments
[โ€“] Dark_Arc 2 points 7 months ago* (last edited 7 months ago) (1 children)

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).

[โ€“] [email protected] 2 points 7 months ago

Oh that sounds bad ass thanks for the info :)