fedimbed: bluesky stats (testing, adding to fedi after)
This commit is contained in:
		
							parent
							
								
									7492929ca1
								
							
						
					
					
						commit
						995cd47e34
					
				
					 1 changed files with 18 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -81,6 +81,7 @@ const BSKY_DOMAINS = [
 | 
			
		|||
  "stupidpenisx.com",
 | 
			
		||||
  "girlcockx.com",
 | 
			
		||||
  "ilsforpresident.com",
 | 
			
		||||
  "theworstplaceontheinter.net",
 | 
			
		||||
  // these two are base64 encoded just because i dont want those words in my codebase
 | 
			
		||||
  Buffer.from("aGl0bGVyeC5jb20=", "base64").toString(),
 | 
			
		||||
  Buffer.from("bmlnZ2VyeC5jb20=", "base64").toString(),
 | 
			
		||||
| 
						 | 
				
			
			@ -98,6 +99,11 @@ const pageParser = new XMLParser({
 | 
			
		|||
  trimValues: false,
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const statsFormatter = Intl.NumberFormat("en-US", {
 | 
			
		||||
  notation: "compact",
 | 
			
		||||
  maximumFractionDigits: 1,
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const domainCache = new Map();
 | 
			
		||||
domainCache.set("cohost.org", "cohost"); // no nodeinfo
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -299,6 +305,16 @@ function processBlueskyFacets(str, facets) {
 | 
			
		|||
  return splitString.map((part) => part.text).join("");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getStatsBluesky(post) {
 | 
			
		||||
  const stats = [];
 | 
			
		||||
  if (post.replyCount > 0) stats.push(`\u21a9 ${statsFormatter.format(post.replyCount)}`);
 | 
			
		||||
  if (post.repostCount > 0) stats.push(`\ud83d\udd01 ${statsFormatter.format(post.repostCount)}`);
 | 
			
		||||
  if (post.quoteCount > 0) stats.push(`\u2198 ${statsFormatter.format(post.quoteCount)}`);
 | 
			
		||||
  if (post.likeCount > 0) stats.push(`\u2665 ${statsFormatter.format(post.likeCount)}`);
 | 
			
		||||
 | 
			
		||||
  return stats.join("\u3000");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function blueskyQuoteEmbed(quote) {
 | 
			
		||||
  const embeds = [];
 | 
			
		||||
  const videos = [];
 | 
			
		||||
| 
						 | 
				
			
			@ -334,7 +350,7 @@ async function blueskyQuoteEmbed(quote) {
 | 
			
		|||
    },
 | 
			
		||||
    description: quote.value.text,
 | 
			
		||||
    footer: {
 | 
			
		||||
      text: "Bluesky",
 | 
			
		||||
      text: `${getStatsBluesky(quote)}\nBluesky`,
 | 
			
		||||
      icon_url: "https://bsky.app/static/apple-touch-icon.png",
 | 
			
		||||
    },
 | 
			
		||||
    timestamp: quote.value.createdAt,
 | 
			
		||||
| 
						 | 
				
			
			@ -525,7 +541,7 @@ async function bluesky(msg, url, spoiler = false) {
 | 
			
		|||
      url: post.author.avatar,
 | 
			
		||||
    },
 | 
			
		||||
    footer: {
 | 
			
		||||
      text: "Bluesky",
 | 
			
		||||
      text: `${getStatsBluesky(post)}\nBluesky`,
 | 
			
		||||
      icon_url: "https://bsky.app/static/apple-touch-icon.png",
 | 
			
		||||
    },
 | 
			
		||||
    timestamp: post.record.createdAt,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue