Compare commits
5 Commits
543a65b7fb
...
0363dc2bcd
| Author | SHA1 | Date | |
|---|---|---|---|
| 0363dc2bcd | |||
| ce46bd49fe | |||
| 4653689e5e | |||
| e8e44b7da8 | |||
| 445935f2c9 |
@@ -1 +1 @@
|
|||||||
from .profiles import setup
|
from .profiles import setup, twitch_setup
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
|
|
||||||
async def setup(bot: 'Bot'):
|
async def setup(bot: 'Bot'):
|
||||||
from .component import ProfileComponent
|
from .component import ProfilesComponent
|
||||||
await bot.add_component(ProfileComponent(bot))
|
await bot.add_component(ProfilesComponent(bot))
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ class ProfilesComponent(cmds.Component):
|
|||||||
# ----- API -----
|
# ----- API -----
|
||||||
async def component_load(self):
|
async def component_load(self):
|
||||||
await self.data.init()
|
await self.data.init()
|
||||||
|
await self.bot.version_check(*self.data.VERSION)
|
||||||
|
await self.profiles.init()
|
||||||
|
|
||||||
async def component_teardown(self):
|
async def component_teardown(self):
|
||||||
pass
|
pass
|
||||||
@@ -39,22 +41,22 @@ class ProfilesComponent(cmds.Component):
|
|||||||
Fetch or create the profile for the given user.
|
Fetch or create the profile for the given user.
|
||||||
"""
|
"""
|
||||||
userid = str(user.id)
|
userid = str(user.id)
|
||||||
async with self.bot.dbconn.connection() as conn:
|
# TODO: Transaction
|
||||||
self.bot.dbconn.conn = conn
|
profile = await self.profiles.get_profile_twitch(userid)
|
||||||
async with conn.transaction():
|
if profile is None:
|
||||||
profile = await self.profiles.get_profile_twitch(userid)
|
args = {}
|
||||||
if profile is None:
|
try:
|
||||||
args = {}
|
user = await user.user()
|
||||||
try:
|
args['nickname'] = user.display_name
|
||||||
user = await user.user()
|
args['avatar'] = user.profile_image.url
|
||||||
args['nickname'] = user.display_name
|
except twitchio.HTTPException:
|
||||||
args['avatar'] = user.profile_image.url
|
pass
|
||||||
except twitchio.HTTPException:
|
except IndexError:
|
||||||
pass
|
pass
|
||||||
profile = await UserProfile.create(**args)
|
profile = await UserProfile.create(**args)
|
||||||
await TwitchProfileLink.create(profileid=profile.profileid, userid=userid)
|
await TwitchProfileLink.create(profileid=profile.profileid, userid=userid)
|
||||||
elif touch:
|
elif touch:
|
||||||
await profile.update(last_seen=utc_now())
|
await profile.update(last_seen=utc_now())
|
||||||
|
|
||||||
return profile
|
return profile
|
||||||
|
|
||||||
@@ -68,14 +70,12 @@ class ProfilesComponent(cmds.Component):
|
|||||||
Fetch or create the community for this channel.
|
Fetch or create the community for this channel.
|
||||||
"""
|
"""
|
||||||
chanid = channel.id
|
chanid = channel.id
|
||||||
async with self.bot.dbconn.connection() as conn:
|
# TODO: Transaction
|
||||||
self.bot.dbconn.conn = conn
|
comm = await self.profiles.get_community_twitch(chanid)
|
||||||
async with conn.transaction():
|
if comm is None:
|
||||||
comm = await self.profiles.get_community_twitch(chanid)
|
comm = await Community.create()
|
||||||
if comm is None:
|
await TwitchCommunityLink.create(channelid=chanid, communityid=comm.communityid)
|
||||||
comm = await Community.create()
|
elif touch:
|
||||||
await TwitchCommunityLink.create(channelid=chanid, communityid=comm.communityid)
|
await comm.update(last_seen=utc_now())
|
||||||
elif touch:
|
|
||||||
await comm.update(last_seen=utc_now())
|
|
||||||
return comm
|
return comm
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user