yoruio / membarr Goto Github PK
View Code? Open in Web Editor NEWThis project forked from faizyy01/invitarr
Discord Bot to invite a user to a Plex or Jellyfin server
License: GNU General Public License v3.0
This project forked from faizyy01/invitarr
Discord Bot to invite a user to a Plex or Jellyfin server
License: GNU General Public License v3.0
Disabling 2FA was the only way to allow /plexsettings setup
to successfully execute. Not sure if there's a workaround for this otherwise but wanted to at least raise the issue.
Currently, if Jellyfin URL is internal, the user receives the internal URL as a login link.
Make external URL setting to make given link accessible from outside local network.
Yesterday all was good, then sometime overnight, as users would reply to Membarr with their email address, Membarr would say thanks but never actually send the invite. Even when I looked at Plex, it shows no invites waiting to be accepted. When I look at the Membarr logs it doesn't have anything, and there is no email added to the database. If I manually add them to the database, that works and it shows in the logs that I added someone. So part of Membarr is working, it just isn't doing anything once someone replies with their email address. I did check and confirm that my Plex Token is still the same.
Something for the future really.
But would there be the ability to integrate self invite for people to trial the service. Something like 24-48hrs and then it just removes the role and access afterwards.
Many thanks again for the work you have put into this!
Someone recently joined my server, and when I try to use /membarr dbadd
, the user is not listed when selecting a member
. I only recently set up the bot and I've used it multiple times until now. The only difference is I've enabled the "Onboarding" feature of my server. Could that make a difference?
I'm getting this error when I reply to the bot with a email, bot messages the user when a role it added just fine and no start up errors.
[2023-07-09 17:07:58] [ERROR ] discord.client: Ignoring exception in on_member_update
Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 441, in _run_event
await coro(*args, **kwargs)
File "C:\Program Files\Invite Membarr\app\bot\cogs\app.py", line 273, in on_member_update
email = await self.getemail(after)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Invite Membarr\app\bot\cogs\app.py", line 162, in getemail
await embedinfo(after,' ')
File "C:\Program Files\Invite Membarr\app\bot\helper\message.py", line 10, in embedinfo
await send_embed(recipient, embed, ephemeral)
File "C:\Program Files\Invite Membarr\app\bot\helper\message.py", line 26, in send_embed
await recipient.send(embed=embed)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\abc.py", line 1561, in send
data = await state.http.send_message(channel.id, params=params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\http.py", line 744, in request
raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In embeds.0.description: This field is required
the config helper currently does not actually reload stuff (you have to reload manually?) and really should be a class with a reload function. will make future work MUCH easier and less bug prone once this is rewritten
I have a question in using it with jellyfin:
How do I translate the responses from the bot to my own language?
Thanks!
seemingly the ratelimit for plex API is super low. Gotta figure out a way to get the bot to work even if ratelimited
In command confirmation message it is saying updating jellyfin libraries
BOT — Today at 4:07 PM
Jellyfin libraries updated. Please wait a few seconds for bot to restart.
Logs has below which is correct:
Plex libraries updated. Restarting bot. Please wait.
Below is the message. Server name shows blank
Welcome To . Just reply with your email so we can add you to Plex!
Different library additions for different user roles
If the users can be created without the option to download content, that would be greatly appreciated.
This line removes the jellyfin_roles
Line 96 in 6b0dcbd
Make commands use discord UI for buttons and stuff
More of a feature request which is available in jfa-go while cloning profile
Media playback:
Allow media playback
Allow audio playback that requires transcoding
Allow video playback that requires transcoding
Allow video playback that requires conversion without re-encoding
Just dropping an issue to request some research into potential Emby support, as asked on Reddit :)
Implement migration commands from Invitarr / older versions of the app
Make Unraid CA app
Probably use discord-py-slash-commands to keep discord.py library, migrate to discord.py slash commands once they are released.
Hi,
seems that plex changed something to remove users from plex server.
(410) gone; https://plex.tv/api/friends/27895919 <?xml version="1.0" encoding="UTF-8"?> <Response code="410" status="This endpoint was deprecated and removed"/>
Removed Plex email cyb3rgh05t from db
is it possible to fix this?
Контейнер с ботом перестал стартовать. Конфигурацию не меняли, он просто вдруг взял и перестал запускаться((
Проверили, токен указан верный.
Логи контейнера:
[2023-12-20 20:20:37] [INFO ] discord.client: logging in using static token
[2023-12-20 20:20:38] [INFO ] discord.gateway: Shard ID None has connected to Gateway (Session ID: 58122efe51c6b5e98f347faf72c11e2d).
Traceback (most recent call last):
File "/app/run.py", line 346, in
bot.run(Discord_bot_token)
File "/usr/local/lib/python3.9/site-packages/discord/client.py", line 828, in run
asyncio.run(runner())
File "/usr/local/lib/python3.9/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/usr/local/lib/python3.9/site-packages/discord/client.py", line 817, in runner
await self.start(token, reconnect=reconnect)
File "/usr/local/lib/python3.9/site-packages/discord/client.py", line 746, in start
await self.connect(reconnect=reconnect)
File "/usr/local/lib/python3.9/site-packages/discord/client.py", line 627, in connect
await self.ws.poll_event()
File "/usr/local/lib/python3.9/site-packages/discord/gateway.py", line 622, in poll_event
await self.received_message(msg.data)
File "/usr/local/lib/python3.9/site-packages/discord/gateway.py", line 572, in received_message
func(data)
File "/usr/local/lib/python3.9/site-packages/discord/state.py", line 1209, in parse_guild_create
guild = self._get_create_guild(data)
File "/usr/local/lib/python3.9/site-packages/discord/state.py", line 1147, in _get_create_guild
guild._from_data(data)
File "/usr/local/lib/python3.9/site-packages/discord/guild.py", line 487, in _from_data
self.stickers: Tuple[GuildSticker, ...] = tuple(
File "/usr/local/lib/python3.9/site-packages/discord/guild.py", line 488, in
map(lambda d: state.store_sticker(self, d), guild.get('stickers', []))
File "/usr/local/lib/python3.9/site-packages/discord/state.py", line 379, in store_sticker
self._stickers[sticker_id] = sticker = GuildSticker(state=self, data=data)
File "/usr/local/lib/python3.9/site-packages/discord/sticker.py", line 273, in init
self._from_data(data)
File "/usr/local/lib/python3.9/site-packages/discord/sticker.py", line 416, in _from_data
super()._from_data(data)
File "/usr/local/lib/python3.9/site-packages/discord/sticker.py", line 280, in _from_data
self.url: str = f'{Asset.BASE}/stickers/{self.id}.{self.format.file_extension}'
File "/usr/local/lib/python3.9/site-packages/discord/enums.py", line 534, in file_extension
return lookup[self]
KeyError: <StickerFormatType.unknown_4: 4>
No Plex auth token details found
No Plex login info found
Could not load plex config
Could not get Plex roles config
Could not get Plex libs config. Defaulting to all libraries.
Could not get Plex enable config. Defaulting to False
Initializing Discord bot
Loading media server connectors
Connected to db
Table exists.DB table version: Membarr V1.1
DB table up to date!No Plex auth token details found
No Plex login info found
Could not load plex config
Plex disabled. Skipping Plex login.
I get this error message each time the bot runs a requests towards the Discord server.
I've kicked the bot after migrating from Invitarr, set OAuth URL generator settings to use the bot and application.commands options and set the bot permissions to Administrator.
[2022-11-21 14:52:51] [ERROR ] discord.app_commands.tree: Ignoring exception in command 'remove'
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/discord/app_commands/commands.py", line 850, in _do_call
return await self.callback(self.binding, interaction, **params) # type: ignore
File "/app/app/bot/cogs/app.py", line 374, in plexremove
await self.removefromplex(email, interaction.response)
File "/app/app/bot/cogs/app.py", line 223, in removefromplex
await embederror(response, 'There was an error removing this email address. Check logs.')
File "/app/app/bot/helper/message.py", line 6, in embederror
await send_embed(recipient, embed, ephemeral)
File "/app/app/bot/helper/message.py", line 28, in send_embed
await recipient.send_message(embed=embed, ephemeral = ephemeral)
File "/usr/local/lib/python3.9/site-packages/discord/interactions.py", line 718, in send_message
await adapter.create_interaction_response(
File "/usr/local/lib/python3.9/site-packages/discord/webhook/async.py", line 221, in request
raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 40060): Interaction has already been acknowledged.The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/discord/app_commands/tree.py", line 1240, in _call
await command._invoke_with_namespace(interaction, namespace)
File "/usr/local/lib/python3.9/site-packages/discord/app_commands/commands.py", line 876, in _invoke_with_namespace
return await self._do_call(interaction, transformed_values)
File "/usr/local/lib/python3.9/site-packages/discord/app_commands/commands.py", line 869, in _do_call
raise CommandInvokeError(self, e) from e
discord.app_commands.errors.CommandInvokeError: Command 'remove' raised an exception: HTTPException: 400 Bad Request (error code: 40060): Interaction has already been acknowledged.
Store the plex auth token instead of login info (this should maybe fix the authentication ratelimiter too?
ERROR
Could not connect to Plex server. Please check your credentials.
I am using unraid. I tried invitarr first and got the same issue. What does the config file look like so maybe I can fill it out manually?
Hi,
Could you update the requirement list?
Would it work on the latest PlexAPI 4.13.0?
I'm not using virtual environments, so using membarr with PlexAPI 4.0.0 causes my other scripts to malfunction.
This is more of a feature / suggestion than an issue. But I couldn't find any labels/tags.
Invite links run out after 24 hours, but that doesn't remove the role, this causes a lot of manual work. For example when I moved to Membarr, I invited around 70 users, but only 55 users have access. There are 15 people on discord that have the role, while they shouldn't, because the invite ran out.
Could it be implemented to remove the said role, when someone doesn't reply within 24 hours?
Implement jfa-go option to add / remove accounts. Expands Jellyfin support
Add log channel in discord to not need opening up docker logs
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.