Skip to content

Create leaderboard #2

@faultables

Description

@faultables
  1. Get list members
async function getMembers () {
  const DATA_SOURCE = 'https://raw.githubusercontent.com/evilfactorylabs/mbote/master/src/member.json'
  const req = await fetch(DATA_SOURCE)
  const json = await req.json()
  return json.rss
}
  1. Get list posts
async function getPosts () {
  const DATA_SOURCE = 'https://raw.githubusercontent.com/evilfactorylabs/mbote/master/src/cached.json'
  const req = await fetch(DATA_SOURCE)
  const json = await req.json()
  return json
}
  1. Group it based on normalized URL
async function groupPosts () {
  const posts = await getPosts()
  const members = await getMembers()

  const createKeyFromMembers = members.map(member => {
    const url = member.rss
    const normalizedUrl = new URL(url).hostname
    return { url: normalizedUrl }
  })

  const groupPostByMember = createKeyFromMembers.map(member => {
    const grouped = []

    posts.map(post => {
      if (post.link.includes(member.url)) {
        grouped.push({ ...post })
      }
    })

    return grouped
  })

  return groupPostByMember
}
  1. TODO:
// 0. This code is not tested, just my imagination!
// 1. I believe there is an easy way rather than this
// 2. Group it based on normalizedURL

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions