feat: connect accounts with not picture

This commit is contained in:
Nevo David 2025-08-12 14:39:13 +07:00
parent 8a1e45aa10
commit 54b2b95cf3
23 changed files with 32 additions and 40 deletions

View File

@ -213,7 +213,7 @@ export class BlueskyProvider extends SocialAbstract implements SocialProvider {
accessToken: accessJwt,
id: did,
name: profile.data.displayName!,
picture: profile.data.avatar!,
picture: profile?.data?.avatar || '',
username: profile.data.handle!,
};
} catch (e) {

View File

@ -81,7 +81,7 @@ export class DevToProvider extends SocialAbstract implements SocialProvider {
accessToken: body.apiKey,
id,
name,
picture: profile_image,
picture: profile_image || '',
username,
};
} catch (err) {

View File

@ -242,7 +242,7 @@ export class DiscordProvider extends SocialAbstract implements SocialProvider {
.filter((role: any) =>
role.name.toLowerCase().includes(data.query.toLowerCase())
)
.filter((f) => f.name !== '@everyone' && f.name !== '@here');
.filter((f: any) => f.name !== '@everyone' && f.name !== '@here');
const list = await (
await fetch(

View File

@ -54,7 +54,7 @@ export class DribbbleProvider extends SocialAbstract implements SocialProvider {
accessToken: access_token,
refreshToken: refreshToken,
expiresIn: expires_in,
picture: profile_image,
picture: profile_image || '',
username,
};
}

View File

@ -236,9 +236,7 @@ export class FacebookProvider extends SocialAbstract implements SocialProvider {
const {
id,
name,
picture: {
data: { url },
},
picture
} = await (
await fetch(
`https://graph.facebook.com/v20.0/me?fields=id,name,picture&access_token=${access_token}`
@ -251,7 +249,7 @@ export class FacebookProvider extends SocialAbstract implements SocialProvider {
accessToken: access_token,
refreshToken: access_token,
expiresIn: dayjs().add(59, 'days').unix() - dayjs().unix(),
picture: url,
picture: picture?.data?.url || '',
username: '',
};
}

View File

@ -61,7 +61,7 @@ export class FarcasterProvider
accessToken: data.signer_uuid,
refreshToken: '',
expiresIn: dayjs().add(200, 'year').unix() - dayjs().unix(),
picture: data.pfp_url,
picture: data?.pfp_url || '',
username: data.username,
};
}

View File

@ -91,7 +91,7 @@ export class HashnodeProvider extends SocialAbstract implements SocialProvider {
accessToken: body.apiKey,
id,
name,
picture: profilePicture,
picture: profilePicture || '',
username,
};
} catch (err) {

View File

@ -364,9 +364,7 @@ export class InstagramProvider
const {
id,
name,
picture: {
data: { url },
},
picture
} = await (
await fetch(
`https://graph.facebook.com/v20.0/me?fields=id,name,picture&access_token=${access_token}`
@ -379,7 +377,7 @@ export class InstagramProvider
accessToken: access_token,
refreshToken: access_token,
expiresIn: dayjs().add(59, 'days').unix() - dayjs().unix(),
picture: url,
picture: picture?.data?.url || '',
username: '',
};
}

View File

@ -41,7 +41,7 @@ export class InstagramStandaloneProvider
)
).json();
const { user_id, name, username, profile_picture_url } = await (
const { user_id, name, username, profile_picture_url = '' } = await (
await fetch(
`https://graph.instagram.com/v21.0/me?fields=user_id,username,name,profile_picture_url&access_token=${access_token}`
)
@ -53,7 +53,7 @@ export class InstagramStandaloneProvider
accessToken: access_token,
refreshToken: access_token,
expiresIn: dayjs().add(59, 'days').unix() - dayjs().unix(),
picture: profile_picture_url,
picture: profile_picture_url || '',
username,
};
}

View File

@ -107,7 +107,7 @@ export class LemmyProvider extends SocialAbstract implements SocialProvider {
user.person_view.person.display_name ||
user.person_view.person.name ||
'',
picture: user.person_view.person.avatar || '',
picture: user?.person_view?.person?.avatar || '',
username: body.identifier || '',
};
} catch (e) {

View File

@ -80,7 +80,7 @@ export class LinkedinProvider extends SocialAbstract implements SocialProvider {
refreshToken,
expiresIn: expires_in,
name,
picture,
picture: picture || '',
username: vanityName,
};
}

View File

@ -91,7 +91,7 @@ export class MastodonProvider extends SocialAbstract implements SocialProvider {
accessToken: tokenInformation.access_token,
refreshToken: 'null',
expiresIn: dayjs().add(100, 'years').unix() - dayjs().unix(),
picture: personalInformation.avatar,
picture: personalInformation?.avatar || '',
username: personalInformation.username,
};
}

View File

@ -72,7 +72,7 @@ export class MediumProvider extends SocialAbstract implements SocialProvider {
accessToken: body.apiKey,
id,
name,
picture: imageUrl,
picture: imageUrl || '',
username,
};
} catch (err) {

View File

@ -147,7 +147,7 @@ export class NostrProvider extends SocialAbstract implements SocialProvider {
accessToken: AuthService.signJWT({ password: body.password }),
refreshToken: '',
expiresIn: dayjs().add(200, 'year').unix() - dayjs().unix(),
picture: user.picture,
picture: user?.picture || '',
username: user.name || 'nousername',
};
} catch (e) {

View File

@ -82,7 +82,7 @@ export class PinterestProvider
accessToken: access_token,
refreshToken: refreshToken,
expiresIn: expires_in,
picture: profile_image,
picture: profile_image || '',
username,
};
}

View File

@ -59,7 +59,7 @@ export class RedditProvider extends SocialAbstract implements SocialProvider {
accessToken,
refreshToken: newRefreshToken,
expiresIn,
picture: icon_img.split('?')[0],
picture: icon_img?.split?.('?')?.[0] || '',
username: name,
};
}
@ -118,7 +118,7 @@ export class RedditProvider extends SocialAbstract implements SocialProvider {
accessToken,
refreshToken,
expiresIn,
picture: icon_img.split('?')[0],
picture: icon_img?.split?.('?')?.[0] || '',
username: name,
};
}

View File

@ -95,7 +95,7 @@ export class SlackProvider extends SocialAbstract implements SocialProvider {
accessToken: access_token,
refreshToken: 'null',
expiresIn: dayjs().add(100, 'years').unix() - dayjs().unix(),
picture: user.profile.image_original,
picture: user?.profile?.image_original || '',
username: user.name,
};
}

View File

@ -71,7 +71,7 @@ export class TelegramProvider extends SocialAbstract implements SocialProvider {
accessToken: String(chat.id),
refreshToken: '',
expiresIn: dayjs().add(200, 'year').unix() - dayjs().unix(),
picture: photo,
picture: photo || '',
username: chat.username!,
};
}

View File

@ -41,9 +41,7 @@ export class ThreadsProvider extends SocialAbstract implements SocialProvider {
id,
name,
username,
picture: {
data: { url },
},
picture
} = await this.fetchPageInformation(access_token);
return {
@ -52,7 +50,7 @@ export class ThreadsProvider extends SocialAbstract implements SocialProvider {
accessToken: access_token,
refreshToken: access_token,
expiresIn: dayjs().add(59, 'days').unix() - dayjs().unix(),
picture: url,
picture: picture?.data?.url || '',
username: '',
};
}
@ -112,9 +110,7 @@ export class ThreadsProvider extends SocialAbstract implements SocialProvider {
id,
name,
username,
picture: {
data: { url },
},
picture,
} = await this.fetchPageInformation(access_token);
return {
@ -123,7 +119,7 @@ export class ThreadsProvider extends SocialAbstract implements SocialProvider {
accessToken: access_token,
refreshToken: access_token,
expiresIn: dayjs().add(59, 'days').unix() - dayjs().unix(),
picture: url,
picture: picture?.data?.url || '',
username: username,
};
}

View File

@ -250,7 +250,7 @@ export class TiktokProvider extends SocialAbstract implements SocialProvider {
accessToken: access_token,
id: open_id.replace(/-/g, ''),
name: display_name,
picture: avatar_url,
picture: avatar_url || '',
username: username,
};
}

View File

@ -65,7 +65,7 @@ export class VkProvider extends SocialAbstract implements SocialProvider {
accessToken: access_token,
refreshToken: refresh_token + '&&&&' + device_id,
expiresIn: dayjs().add(expires_in, 'seconds').unix() - dayjs().unix(),
picture: avatar,
picture: avatar || '',
username: first_name.toLowerCase(),
};
}
@ -150,7 +150,7 @@ export class VkProvider extends SocialAbstract implements SocialProvider {
accessToken: access_token,
refreshToken: refresh_token + '&&&&' + device_id,
expiresIn: dayjs().add(expires_in, 'seconds').unix() - dayjs().unix(),
picture: avatar,
picture: avatar || '',
username: first_name.toLowerCase(),
};
}

View File

@ -258,7 +258,7 @@ export class XProvider extends SocialAbstract implements SocialProvider {
name,
refreshToken: '',
expiresIn: 999999999,
picture: profile_image_url,
picture: profile_image_url || '',
username,
additionalSettings: [
{

View File

@ -132,7 +132,7 @@ export class YoutubeProvider extends SocialAbstract implements SocialProvider {
refreshToken: credentials.refresh_token!,
id: data.id!,
name: data.name!,
picture: data.picture!,
picture: data?.picture || '',
username: '',
};
}
@ -178,7 +178,7 @@ export class YoutubeProvider extends SocialAbstract implements SocialProvider {
refreshToken: tokens.refresh_token!,
id: data.id!,
name: data.name!,
picture: data.picture!,
picture: data?.picture || '',
username: '',
};
}