kopia lustrzana https://github.com/badgen/badgen.net
				
				
				
			chore: deprecate gitter badge
							rodzic
							
								
									cf6798eca4
								
							
						
					
					
						commit
						abd496b96b
					
				| 
						 | 
				
			
			@ -1,39 +0,0 @@
 | 
			
		|||
import got from '../libs/got'
 | 
			
		||||
import { millify } from '../libs/utils'
 | 
			
		||||
import { createBadgenHandler, PathArgs } from '../libs/create-badgen-handler'
 | 
			
		||||
 | 
			
		||||
const BRAND_COLOR = 'ED1965'
 | 
			
		||||
 | 
			
		||||
export default createBadgenHandler({
 | 
			
		||||
  title: 'Gitter',
 | 
			
		||||
  examples: {
 | 
			
		||||
    '/gitter/members/redom/lobby': 'members',
 | 
			
		||||
    '/gitter/members/redom/redom': 'members'
 | 
			
		||||
  },
 | 
			
		||||
  handlers: {
 | 
			
		||||
    '/gitter/members/:org/:room': handler
 | 
			
		||||
  }
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
async function handler ({ org, room }: PathArgs) {
 | 
			
		||||
  const membersCount = await fetchMembersCount(org, room)
 | 
			
		||||
  if (Number.isNaN(membersCount)) {
 | 
			
		||||
    return {
 | 
			
		||||
      subject: 'gitter',
 | 
			
		||||
      status: 'unknown',
 | 
			
		||||
      color: 'grey'
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const suffix = membersCount === 1 ? 'member' : 'members'
 | 
			
		||||
  return {
 | 
			
		||||
    subject: 'gitter',
 | 
			
		||||
    status: `${millify(membersCount)} ${suffix}`,
 | 
			
		||||
    color: BRAND_COLOR
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export async function fetchMembersCount(org: string, room: string) {
 | 
			
		||||
  const html = await got(`https://gitter.im/${org}/${room}`).text()
 | 
			
		||||
  return Number(html.match(/"userCount"\s*:\s*(\d+)/)?.[1])
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -41,8 +41,6 @@ export const liveBadgeList = [
 | 
			
		|||
  // social
 | 
			
		||||
  'devrant',
 | 
			
		||||
  'reddit',
 | 
			
		||||
  // chat
 | 
			
		||||
  'gitter',
 | 
			
		||||
  // utilities
 | 
			
		||||
  'opencollective',
 | 
			
		||||
  'keybase',
 | 
			
		||||
| 
						 | 
				
			
			@ -55,7 +53,7 @@ export const liveBadgeList = [
 | 
			
		|||
 | 
			
		||||
export async function loadBadgeMeta() {
 | 
			
		||||
  const liveBadgeExamples = await Promise.all(liveBadgeList.map(async id => {
 | 
			
		||||
    const mod = await import(rel('../api-', id))
 | 
			
		||||
    const mod = await import(rel('../api-legacy', id))
 | 
			
		||||
    const { title, examples, handlers } = mod.default.meta
 | 
			
		||||
 | 
			
		||||
    return {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@ import got from 'got'
 | 
			
		|||
 | 
			
		||||
export default got.extend({
 | 
			
		||||
  timeout: {
 | 
			
		||||
    request: 4600,
 | 
			
		||||
    request: 6400,
 | 
			
		||||
  },
 | 
			
		||||
  retry: {
 | 
			
		||||
    limit: 0,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -54,6 +54,7 @@ const nextConfig = {
 | 
			
		|||
      '/xo',
 | 
			
		||||
      // social network
 | 
			
		||||
      '/discord',
 | 
			
		||||
      '/gitter',
 | 
			
		||||
      '/matrix',
 | 
			
		||||
      '/runkit',
 | 
			
		||||
      '/peertube',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,6 @@
 | 
			
		|||
import { Got } from 'got'
 | 
			
		||||
import got from '../../libs/got'
 | 
			
		||||
import { millify } from '../../libs/utils'
 | 
			
		||||
import { fetchMembersCount as fetchGitterMembersCount } from '../../api-/gitter'
 | 
			
		||||
import { createBadgenHandler, PathArgs } from '../../libs/create-badgen-handler-next'
 | 
			
		||||
 | 
			
		||||
const BRAND_COLOR = 'black'
 | 
			
		||||
| 
						 | 
				
			
			@ -12,7 +11,6 @@ export default createBadgenHandler({
 | 
			
		|||
    '/matrix/members/rust/matrix.org': 'members',
 | 
			
		||||
    '/matrix/members/thisweekinmatrix': 'members',
 | 
			
		||||
    '/matrix/members/archlinux/archlinux.org': 'members',
 | 
			
		||||
    '/matrix/members/redom_redom/gitter.im': 'members'
 | 
			
		||||
  },
 | 
			
		||||
  handlers: {
 | 
			
		||||
    '/matrix/members/:room/:server?': handler
 | 
			
		||||
| 
						 | 
				
			
			@ -44,10 +42,6 @@ async function handler ({ room, server = 'matrix.org' }: PathArgs) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
async function fetchMembersCount(roomName: string, server: string) {
 | 
			
		||||
  if (server === 'gitter.im') {
 | 
			
		||||
    const [gitterOrg, gitterRoom] = roomName.split('_')
 | 
			
		||||
    return fetchGitterMembersCount(gitterOrg, gitterRoom)
 | 
			
		||||
  }
 | 
			
		||||
  const homeserver = await getHomeserver(server)
 | 
			
		||||
  const client = got.extend({ prefixUrl: `${homeserver}/_matrix/client/r0` })
 | 
			
		||||
  const roomAlias = `#${roomName}:${server}`
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@
 | 
			
		|||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  "include": [
 | 
			
		||||
    "api-",
 | 
			
		||||
    "api-legacy",
 | 
			
		||||
    "libs",
 | 
			
		||||
    "index.ts",
 | 
			
		||||
    "components",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue