Skip to content

Ranking system revisited

Announcements
3 2 1.1k 1
  • I’ve spent some time refactoring the ranking system, as it didn’t really make that much sense - admittedly, it looked good when it first went in, but it never actually reflected reality.

    Based on this, I’ve changed the names of the ranks (there are no actual quantity adjustments in terms of the reputations users have acquired) so they look like the below

    • Newbie (0)
    • Rookie (10)
    • Apprentice (20)
    • Explorer (30)
    • Contributor (50)
    • Enthusiast (100)
    • Collaborator (150)
    • Regular (200)
    • Proficient (300)
    • Experienced (500)
    • Veteran (750)
    • Grand Master (1000)
    • Guru (2000)
    • Yoda (5000)

    This new layout makes the system reflect reality in the sense that is now based on your experience with the platform itself rather than any specific skill set.

    Enjoy 🙂

  • I’ve spent some time refactoring the ranking system, as it didn’t really make that much sense - admittedly, it looked good when it first went in, but it never actually reflected reality.

    Based on this, I’ve changed the names of the ranks (there are no actual quantity adjustments in terms of the reputations users have acquired) so they look like the below

    • Newbie (0)
    • Rookie (10)
    • Apprentice (20)
    • Explorer (30)
    • Contributor (50)
    • Enthusiast (100)
    • Collaborator (150)
    • Regular (200)
    • Proficient (300)
    • Experienced (500)
    • Veteran (750)
    • Grand Master (1000)
    • Guru (2000)
    • Yoda (5000)

    This new layout makes the system reflect reality in the sense that is now based on your experience with the platform itself rather than any specific skill set.

    Enjoy 🙂

    @phenomlab Which rank plugin using Sudonix?

  • @phenomlab Which rank plugin using Sudonix?

    @cagatay nodebb-plugin-user-level

  • phenomlabundefined phenomlab forked this topic on

Related Topics
  • 14 Votes
    9 Posts
    1k Views
    @DownPW of course. As I mentioned in the first post, Sudonix isn’t going anywhere. It’ll continue to be free as it always has been.
  • ANNOUNCEMENT: Social Login Changes

    Announcements openid oauth
    4
    1
    6 Votes
    4 Posts
    1k Views
    @DownPW Always looking for ways to improve the overall experience.
  • ANNOUCEMENT: New NTFY Server

    Announcements ntfy push alerts
    9
    1
    7 Votes
    9 Posts
    2k Views
    @crazycells that’s as good a test as any
  • Adding reputation

    Solved Customisation reputation
    17
    1
    4 Votes
    17 Posts
    2k Views
    @OT very odd. Shouldn’t be that complex, but glad you have it working.
  • Theme retirement

    Announcements themes switcher
    21
    16 Votes
    21 Posts
    5k Views
    I relented somewhat here and added another swatch - one I missed, which was previous called “blackout”. This specific one has been adapted to work on the new theming engine, but the others have been reclassified, and renamed to suit. [image: 1693924764891-d7f3a7a1-9702-4238-99bd-5c0e0d53f244-image.png] As a result, the theme you might have had will probably be reflecting something else, so you (might) need to change your themes accordingly. The changes are as follows Light -> No Change Cloudy -> Is now the old “Dim” Dim -> Is now the old “Dark” Dark -> Now a new theme based on the revamped “Blackout”
  • 36 Votes
    43 Posts
    10k Views
    I was experiencing 500 (Internal Server Error) responses from the proxy, visible in the browser console: GET https://proxy.xxx-xxx.net/ogproxy?url=https%3A%2F%2Fzupimages.net%2Fup%2F26%2F16%2Fld8h.jpg 500 (Internal Server Error) After investigation, I found two root causes: 1. Direct image URLs being sent to the proxy The custom JavaScript responsible for detecting links and sending them to the proxy was using the following regex to exclude direct image links: var fileExtensionPattern = /\.(png|jpeg|gif|pdf|docx?|xlsx?|pptx?|zip|rar|svg)$/i; Note that .jpg and .webp were missing from the pattern. As a result, links ending in .jpg were not recognized as direct image URLs and were forwarded to the OGProxy, which then tried to scrape them as web pages using open-graph-scraper — causing a 500 error. The fix was to add the missing extensions: var fileExtensionPattern = /\.(jpg|png|jpeg|gif|pdf|docx?|xlsx?|pptx?|zip|rar|svg|webp)$/i; 2. The proxy not following HTTP redirects Some image hosting services (e.g. zupimages.net) return a 301 redirect from the bare domain to www. When curl follows the redirect manually the image loads fine: curl -IL https://zupimages.net/up/26/16/ld8h.jpg HTTP/2 301 → https://www.zupimages.net/up/26/16/ld8h.jpg HTTP/2 200 However, the proxy’s axios.get() call does not handle this gracefully when open-graph-scraper is involved, resulting in a 500 error being returned to the client. My questions are: Is there a known best practice for handling redirect chains in open-graph-scraper? Would passing maxRedirects or followRedirect options explicitly to axios or ogs fix this reliably? Is there a cleaner way to pre-filter direct image/file URLs before they reach the proxy, ideally at the NodeBB plugin level rather than in custom JS? Thanks in advance.
  • Clustering for NodeBB enabled

    Announcements cluster
    22
    1
    16 Votes
    22 Posts
    4k Views
    @Madchatthew True. I think this is the reason as to why most Open Source projects are abandoned because they are not sustainable in the long-term.
  • Reputation system update

    Announcements voting rank award
    11
    10 Votes
    11 Posts
    2k Views
    I think I will not use your author button because I use Badge group and 3 badge it’s too much to display… But your idea is so cool ^^