Skip to content

Commit

Permalink
revolt reactions support
Browse files Browse the repository at this point in the history
  • Loading branch information
greeeen-dev committed Jun 21, 2024
1 parent 8709c14 commit eb68fe3
Showing 1 changed file with 39 additions and 17 deletions.
56 changes: 39 additions & 17 deletions cogs/bridge.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,29 +148,33 @@ async def fetch_url(self, guild_id):

async def add_reaction(self, emoji, userid):
userid = str(userid)
platform = 'revolt' if emoji.startswith('<r:') else 'discord'
if not emoji in list(self.reactions.keys()):
self.reactions.update({emoji:{}})
if not userid in list(self.reactions[emoji].keys()):
self.reactions[emoji].update({userid:0})
self.reactions[emoji][userid] += 1
return self.reactions[emoji][userid]
self.reactions[emoji].update({userid:[0,platform]})
self.reactions[emoji][userid][0] += 1
return self.reactions[emoji][userid][0]

async def remove_reaction(self, emoji, userid):
userid = str(userid)
self.reactions[emoji][userid] -= 1
if self.reactions[emoji][userid] <= 0:
try:
userid = str(userid)
self.reactions[emoji][userid][0] -= 1
except:
return 0
if self.reactions[emoji][userid][0] <= 0:
self.reactions[emoji].pop(userid)

total = 0
for user in self.reactions[emoji]:
total += self.reactions[emoji][user]
total += self.reactions[emoji][user][0]

if total==0:
self.reactions.pop(emoji)

return 0
else:
return self.reactions[emoji][userid]
return self.reactions[emoji][userid][0]

async def fetch_external_url(self, source, guild_id):
return self.external_urls[source][guild_id]
Expand Down Expand Up @@ -2400,18 +2404,25 @@ async def reactions_ctx(self, interaction, msg: nextcord.Message):
break
if x==0 and index < x + (page * limit) or x==limit-1 and index > x + (page * limit):
index = x + (page * limit)
emoji = nextcord.PartialEmoji.from_str(list(msg.reactions.keys())[x + (page * limit)])
if emoji.is_unicode_emoji():
name = pymoji.demojize(emoji.name, delimiters=('',''))
if type(name) is list:
name = name[0] if len(name) > 0 else 'unknown'
platform = 'discord'
if list(msg.reactions.keys())[x + (page * limit)].startswith('<r:'):
platform = 'revolt'
name = None
if platform=='discord':
emoji = nextcord.PartialEmoji.from_str(list(msg.reactions.keys())[x + (page * limit)])
if emoji.is_unicode_emoji():
name = pymoji.demojize(emoji.name, delimiters=('',''))
if type(name) is list:
name = name[0] if len(name) > 0 else 'unknown'
else:
name = emoji.name
else:
name = emoji.name
name = list(msg.reactions.keys())[x + (page * limit)].split(':')[1]
if not name:
name = 'unknown'
selection.add_option(
label=f':{name}:',
emoji=list(msg.reactions.keys())[x + (page * limit)],
emoji=list(msg.reactions.keys())[x + (page * limit)] if not name=='unknown' and platform=='discord' else None,
value=f'{x}',
default=x + (page * limit)==index,
description=f'{len(msg.reactions[list(msg.reactions.keys())[x + (page * limit)]].keys())} reactions'
Expand All @@ -2422,9 +2433,20 @@ async def reactions_ctx(self, interaction, msg: nextcord.Message):
embed.description = f'No reactions yet!'
else:
for user in list(msg.reactions[list(msg.reactions.keys())[index]].keys()):
userobj = self.bot.get_user(int(user))
platform = msg.reactions[list(msg.reactions.keys())[index]][user][1]
userobj = None
if platform=='discord':
userobj = self.bot.get_user(int(user))
elif platform=='revolt':
try:
userobj = self.bot.revolt_client.get_user(user)
except:
pass
if userobj:
users.append(f'@{userobj.global_name if userobj.global_name else userobj.name}')
if platform=='discord':
users.append(f'@{userobj.global_name if userobj.global_name else userobj.name}')
elif platform=='revolt':
users.append(f'@{userobj.display_name if userobj.display_name else userobj.name}')
else:
users.append('@[unknown]')
embed.description = f'# {list(msg.reactions.keys())[index]}\n' + ('\n'.join(users))
Expand Down

0 comments on commit eb68fe3

Please sign in to comment.