Coder Social home page Coder Social logo

modlist's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

modlist's Issues

Homepage

The homepage should contain a link to the latest mod list and a link to a random mod.

The homepage should list the 3 latest versions, below each version should be the date that the list was last updated, below that should be a summary of the most recent changes. There should be a link to view the list and a link to view the changelog.

Anchors rely on different mod names

See "Reptile Mod" vs "Reptile mod" on 1.7.2
Possible Fixes:

  • Add mod author name to anchor
  • Add 'other' field to anchor (less readable?)
  • ID system (move to a database) - definitely not readable unless added to name
  • Additional optional 'anchor' field in json for manual override - used unless empty.

Search is done twice per character input

Current search is called on both key presses and key releases to cover all cases. However it makes the search script effectively loop twice over the list.
Workaround: No visible effect on user side except on larger lists (1.4.7?)
Possible Fixes:

  • Keep a variable of the last search and compare before attempting to go through the table
  • Remove one of the event listeners (may miss actual events)

Removal of some mods

I've finally decided to remove most Calclavia's mods (sorry but I'm tired). I've already removed Resonant Induction, Modular Force Field System but the problem arised when I've faced with Universal Electricity. The problem is that this is a dependency if I'll remove it I need to remove every mod which are depend on it... or not? I don't know what to do now this is why I asking.

Current mod status:
ICBM for 1.6.2 and lower -> check, downloads archived. Depends on UE.
ICBM for 1.6.4 -> check, uploaded on curse. Latest version depends only on Forge.
ICBM for 1.7.10 -> check.
Resonant Engine both 1.6.4 and 1.7.10 -> check.
Voltz Engine -> check.
Modular Force Field System -> removed.
Resonant Induction -> removed.
Hawk's Machinery -> check, downloads archived. Depends on UE.
Mad Science -> check, downloads on curse. Depends on UE.
Metal Mechanics -> removed, downloads are dead.
Minechem 1.6.4 -> check, downloads on curse. Depends on UE.
Modular Powersuits 1.5.2 and lower -> check, downloads are up. Depends on UE.

Solution №1: Remove all mods that are depends on UE and all other references to UE (Simple solution).

Solution №2: Remove mods with dead links, remove UE (and refs in descs) but leave UE as unclickable dependency in alive mods dependencies. So, if you click on UE in Minechem deps for example nothing happens. (users have to search for UE themselves)

Solution №3: We should try to contact with someone from former UE Team and yell at them to reupload UE on curse if it still exist somewhere (it should exist in modpacks btw) and maybe some other UE mods. I suggest to ping DarkGuardsman if you @GrygrFlzr want to try this solution.

Personally I suggest at least try solution №3. If fail, I'll prefer solution №2.

Mod entry deleted by panel when 2+ entries exist

When 2 entries with the same name exist in the list, using the panel to update one will delete whichever comes later.
An example with this issue:

[{

"name":"Monster Spawn Highlighter",
"link":"http://bit.ly/Sw1AcJ",
"desc":"Highlights any blocks where monsters can spawn.",
"author":["Lunatrius"],
"source":"https://github.com/Lunatrius/Monster-Spawn-Highlighter",
"type":["Client"],
"dependencies":["Forge Compatible","ModLoader"],
"versions":["1.6.4","1.6.2","1.5.2","1.5.1","1.5","1.4.7","1.4.5","1.4.2"]

},{

"name":"Monster Spawn Highlighter",
"link":"http://bit.ly/Sw1AcJ",
"desc":"Highlights any blocks where monsters can spawn.",
"author":["Lunatrius"],
"source":"https://github.com/Lunatrius/Monster-Spawn-Highlighter",
"type":["Client"],
"dependencies":["Forge Required","LunatriusCore"],
"versions":["1.7.2"]

}]

Dependencies are different.
In this case, updating Monster Spawn Highlighter to 1.7.10 will delete the second entry and cause incorrect data:

[{

"name":"Monster Spawn Highlighter",
"link":"http://bit.ly/Sw1AcJ",
"desc":"Highlights any blocks where monsters can spawn.",
"author":["Lunatrius"],
"source":"https://github.com/Lunatrius/Monster-Spawn-Highlighter",
"type":["Client"],
"dependencies":["Forge Compatible","ModLoader"],
"versions":["1.7.10","1.7.2","1.6.4","1.6.2","1.5.2","1.5.1","1.5","1.4.7","1.4.5","1.4.2"]

}]

The core of the issue is due to the fact that there is no way to identify a mod apart from its name. The panel does not know which entry it needs to update, so the default behavior always prefers the first occurrence and removes the "redundant" data.

Database Schema

Versions (notes):

  • ID
  • Version Number (eg: 1.7.10)
  • Display Name (eg: 1.7.10 Pre Release)
  • Alias (eg: 1.8)
  • Type (Snapshot, pre-release, release)
  • Description (eg: "Keep in mind...")
  • Visible (true / false)
  • Homepage Featured
  • Accepting Submissions (true / false)

Mods:

  • ID
  • Slug (eg: "armorstatushud")
  • Status (approved, pending)
  • Created At
  • Updated At

ModVersions:

  • ID
  • Mod ID (mods.id)
  • Version (versions.id)
  • Title
  • Description
  • Release Status (eg: alpha, beta, development)
  • Link
  • Sourcecode
  • Forge compatibility
  • Notes
  • Status (approved, pending)
  • Created At
  • Update At

ModVersionDependencies:

  • ID (modversions.id)
  • Dependency ID (mods.id)
  • Order (eg: 1, 2, 3)

ModTags:

  • Mod ID (mods.id)
  • Tag
  • Order (eg: 1, 2, 3)

Availability:

  • ID
  • Name (eg: Clientside)
  • Description (eg: "The mod only needs to run on the client. Example: Minimaps")
  • Order (eg: 1, 2, 3)

Authors:

  • Mod ID (mods.id)
  • Slug
  • Name
  • Order (eg: 1, 2, 3)

Users:

  • ID
  • Username
  • Permissions level (guest, creator, moderator, admin, banned)

Changelog:

  • ID
  • Type (version, mod)
  • Type ID (eg: mods.id = 1, versions.id = 2)
  • Description (eg: "Added new dependency")
  • Notes (eg: "something something typed by moderator)
  • Status (hidden, visible)

Changelog

Each version has an associated change log, this change log lists changes made to mods listed for that version.

Things that should be logged:

  • Description updates
  • Dependency changes
  • New mod added for that version

Example

August 01 2014
    * Updated "Advanced HUD Continuation" name and description: "Advanced HUD"
    * Updated "MusicCraft" link and description

July 31 2014
    * Added "Computronics"

Twitter icon placement in small screens

In small screens and below the placement of the icon does not fit with the rest of the navigation.
Possible Fixes:

  • Align entire link to the right (may still look awkward).
  • Create responsive class that changes the position of the icon depending if screen is small or not.
  • Remove "Twitter" text and rely completely on the icon. Can use .sr-only text to mitigate usability issues. May be less noticeable.

URLs used by visitors to the current site

/version
/version/{version}
/version/{version}.html
/index.php
/changelog
/changelog/{version}
/submit
/submit/form
/faq
/options
/api
/api/v3/docs
/other
/history
/banners
/credits
/panel
/panel/home

Sticky table headers on wrong position

Scroll 4 times on any list page to see the effect. Covers a mod name.
Temporary workaround: Scroll further up or down.
Possible Fixes:

  • Switch sticky header script
  • Force refresh when scrolling (slow)

Versions

An administrator should be able to add a new version to the site, each version should have the following properties:

  • Version number (eg: 1.7.10)
  • Display name (inherit from version number if not specified)
  • Alias (eg: 1.8) -- If a version is an alias it redirects and does not accept submissions
  • Type (Snapshot, pre-release, release)
  • Description (eg: "Keep in mind this is a large update - do not ask mod developers for ETAs.")
  • Display in list (true / false)

Versions should be displayed with the number of mods available on that list (eg: 100).

List Specification

List features:

  • Basic Search - slightly more advanced than Ctrl+F by looking for matches that begin or end with the query. This prevents iron from matching environment, but may be undesired. Possible to remove, considering I've seen bacon_donut use Ctrl+F instead of the web search in his streams
  • Advanced Search - more granular, specifying fields like mod name etc to query.
  • Dependency linking - click to go to the mod

It may be better to also have a separate mod page for each mod.

This is what each mod should ideally have:

  • Mod Name
  • Release status - Released, Alpha/Beta/Development (or perhaps just one generic catch-all)
  • Author(s)
  • Links and link type - MCF thread, main site, github repo, forums, OpenEye, etc.
  • Description
  • Dependencies - other mods, may inherit instead of being redundant?
  • Forge compatibility status - should be separated from Dependencies
  • Last modified timestamp
  • Tags - More of a future plan, may follow CurseForge tags/categories

Every part of the mod entry can change between Minecraft versions.

In the current format:

  • Only one link can be used, with an additional "source" field for a repository.
  • Forge compatibility is mixed with dependencies
  • No tags
  • An "other" field which is usually used as release status and a limited "tag": eg. API

"Feature requests"

  • Mod version - 1.0.0.112 - It is realistic to automatically track versions with a database driven site, especially with many mods being open source (118 mods on 1.7.10 at the time of writing).

Links Specification

Each link will be stored separately with extra metadata. This allows more flexibility with mod links (eg. linking to both Minecraft Forums and FTB Forums, in addition to GitHub and BitBucket links).
Links Properties:

  • Link (http://...)
  • Link title - Custom link name
  • Type - eg. MCF Thread or GitHub repo, use LinkType table for reference
  • Owner Type - Belongs to mod or author (or any future types)
  • Owner ID - Mod/Author ID
  • Notes - for panel use
  • Visibility

It may be useful to expand all links from their current bit.ly form and store the bit.ly link as legacy data.

Current link types:

  • MCF Thread
  • FTB Thread
  • IC2 Thread
  • mods.io page
  • GitHub Repo - can be auto-detected from source links
  • BitBucket Repo - can be auto-detected from source links
  • Official Website
  • Download Page - eg. Forge/FML
  • Other (for everything else that doesn't fit and is not common enough to warrant special styling)

Panel Specification

Main panel features:

  • Identification: GitHub oAuth
  • Authorization: panel-level permissions (admin/mod/guest)
  • Listing submissions
  • Modifying submissions
  • Finalizing submissions - this is important with moderators, so that admins can check over their work
  • Sending e-mails to moderators/admins - technically not part of the panel, more from the submission side

Less important:

  • Bit.ly-ing links - ideally removed in the future and self-tracked per mod instead
  • Listing 404s
  • Displaying site errors
  • Modify user permissions (eg. guest -> mod)

Future stuff that may need to be taken into account - not a priority right now:

  • Modifying user profile
  • Linking panel users to mod authors
  • Auto-tweeting to the site account?
  • Changelog of every modification

Extra spaces in 1.7.x changelog

Currently updating modlist. Found some extra spaces in 1.7.10(2) changelog which begins since June/24/2014(in 1.7.10). Should I delete them?

Unshorten all links

Currently bitly has been marked by Google Safe Browsing as potential malware. Due to its nature as a link shortener, there is no guarantee this will not happen again.
There have been issues in the past with bit.ly being down as well. It has become a single point of failure for the site, and its only advantage of analytics is currently not widely known and can be self hosted to some extent.
I have pushed a temporary workaround with #677 while we unshorten links.

Warn people that we are not updating mods

Can we add some kind of warning to this link that we can't update mods? I'm tired of notifications about updating Ender IO to 1.8. Maybe this will help, maybe not. But this will make me happy a bit.

Mod dependencies get removed when updated from panel

When updating a mod, its dependencies are not shown in the panel.
For example, with this mod:

{

"name":"Not Enough Items",
"other":"(NEI)",
"link":"http://bit.ly/UvpH6y",
"desc":"NEI is ...",
"author":["chicken_bones"],
"type":["Universal"],
"dependencies":["Forge Required","CodeChickenCore"],
"versions":["1.7.2","1.6.4","1.6.2","1.5.2","1.5.1","1.5","1.4.7"]

}

Updating it to 1.7.10 will not show CodeChickenCore as a dependency in the panel form, and must be re-added manually.
The issue is that the submission form only supports the requirement of Forge, namely Forge Required, Forge Compatible and Not Forge Compatible. This data is saved as a string, instead of an array, and the panel prefers the submission data over the already known data.

Ideally, this data should be separate from the dependency field, as the real dependency should be Forge, LiteLoader, etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.