Giter Club home page Giter Club logo

gw2-ninja's Introduction

<gw2-ninja>

Polymer 3 version of GW2 Ninja.

Setup

Prerequisites

First, install Polymer CLI (we assume you have pre-installed node.js).

npm install -g polymer-cli bower

Install

clone from git repo
cd gw2-ninja
npm install

Configuation

Modify ./config.js in the root directory with your application Client ID from Twitch. You can get one from your Twitch Developer Dashboard.

Start the development server

This command serves the app at http://localhost:8080 and provides basic URL routing for the app:

polymer serve

Build

This command performs HTML, CSS, and JS minification on the application dependencies, and generates a service-worker.js file with code to pre-cache the dependencies based on the entrypoint and fragments specified in polymer.json. The minified files are output to the build/default folder.

polymer build

Preview the build

This command serves the built version of the app at http://localhost:8080:

polymer serve build/default

Run tests

Note: No proper tests are currently implemented.

This command will run Web Component Tester against the browsers currently installed on your machine:

polymer test

gw2-ninja's People

Contributors

darthmaim avatar rediche avatar silver-golden avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gw2-ninja's Issues

More lazy-loading for collections

Collections still have fairly bad performance once you go into BL Collections tab.

Lazy-load collection item data when collection is opened. A collection price can already have been loaded once the collection loads. Might help with optimising how many nodes are rendered to the DOM.

[Suggestion] Localisation of Itemnames.

Description

Currently the Itemnames are localized by the Accept-Language Header, which is pooled from the Browser.
This creates an problem for people with mismatching languages between browser and game client.
For Example, my system is on german, but my client is in english.
An Option to set the language to something else would be nice.

Steps to reproduce

Have an Accept-Language Header with es, de, fr, ko or zh.
Have the gameclient in something different.
Open up the collection page and copy paste everything into the wiki to check what it's called in your current game client language.

Browsers Affected

  • [ p ] Chrome
  • [ T ] Firefox
  • [ p ] Safari 9
  • [ p ] Safari 8
  • [ p ] Safari 7
  • [ p ] Edge
  • [ p ] IE 11
  • [ p ] IE 10
    Tested on FF 52.7.3 ESR, since it's an header issue, it'll properly be also on every other browser.

Sort directory better

Currently the directory lists as is. Any way it can be done in a more dynamic way, maybe by popularity without having to update it every few months?

Reenable service worker

Service worker was disabled because of a bug where the route "/precursors" would be served to the index.html from the service worker. This caused the precursors page to not work.

Before service workers can be reenabled on build, there needs to be found a solution. Maybe implement the precursor rain into the frontend website?

Replace native tables with vaadin-grid

Vaadin-grid is the most supported webcomponent grid out there at the moment and it supports table-sorting which is a feature I would like to have on more of the tables.

Timer: Add push notifications

Allow people to "subscribe" permanently to an event or just a single time. A few minutes before the event, send them a notification.

[WvW Map] WvW Green border garrison shows Blue border garrison information

Description

WvW Green border garrison shows Blue border garrison information.

Steps to reproduce

  1. Go to https://gw2.ninja/wvw/map and select any server
  2. Click on the green border garrison
  3. Click on the blue border garrison

Browsers Affected

  • Chrome
  • Firefox
  • Safari 9
  • Safari 8
  • Safari 7
  • Edge
  • IE 11
  • IE 10

Additional information

Green border garrison id: 95-37 sector_id 992
Blue border garrison id: 96-37 sector_id 976
https://api.guildwars2.com/v2/wvw/objectives?ids=96-37,95-37

Better collection handling

Make the system be able to load collections directly from achivements, translate skin IDs into Item IDs and find the cheapest ones.

This might not be super possible due to API limitations of 600 requests. But let's look into it.

Directory: Add-on Section

Add a an "Add-on" section where add-ons such as ArcDPS, TACO, GW2Mounts and GW2Hook.

As an addition to the description usually associated with an entry on the directory, a link to official GW2 approvals of an add-on should also be shown below the description.

Add Streamlabs Cloudbot to Stream commands generator

Streamlabs now doesn't only have their chatbot, but also has a built in chatbot in their OBS version. It uses a different way of reading the API. The generator therefore needs to be able to generate the snippet.

{readapi.https://nightbot.gw2.ninja/command/wvw-kills/API_KEY_HERE}

Change from radio buttons to dropdown since multiple long word options are going to be present.

The new option should be called Streamlabs Cloudbot

Make sure Roboto is not loaded

Some of the polymer paper components load Roboto. This should not happen since the page don't use the roboto font. There is some issues around on github that shows hackier ways to solve this, until those dependencies have roboto made into an opt-in for them.

Find out if the hackier ways are worth it, if so, remove roboto as a dependency and save some bandwidth and pageload time.

WvW section

  • Fix bug on iOS emulation where drag event fails
  • Add interaction with objectives on map
  • Finish remaining data for sub pages
  • Matchup Stats: Show progress properly for Matchup Score under Skirmishes
  • next weeks match ups
  • Fix issue with not being able to import a polymer shared style into a lit-element multiple times (Seems to not be fixable)
  • Disable "Matchup stats" if server is not selected (remember nice disabled styling)
  • "Please choose a server" if server is not selected
  • Use Language from Settings setup for all API requests that need them.

More things based on feedback:

  • PPT Info on matchup page
  • Highlight your own server in tables by making it bold (easier to spot)
  • Remove rank from leaderboards
  • Show current skirmish points on Region Overview
  • Make sure proper font-stack is used on paper-dropdown-menu and paper-tab

Report dead entries in directory

New feature: Report dead entries in directory. This can be everything from a website that no longer exist to a YouTuber or Streamer that is no longer active or actively playing Guild Wars 2.

Light and dark mode

Make a dark mode for the app.

Use the settings-system to toggle it. Should be fairly simple now that the setting system is made with localStorage and it can update straight away as soon as a value changes somewhere in the app.

Vaadin grid dark mode

The current darkmode theme does not have darkmode vaadin grids. Look into getting proper styling onto them.

Save “last active tab".

Only save it for current session. Not across sessions.

Probably some databinding out of collections and into the menu link that refers to it.

Should be on the following pages:

  • Directory
  • Collections
  • Meta timer

iOS: Clicking map objectives not opening dialog

Description

Click objective in the map on an iOS device doesn't open the dialog.

Expected outcome

Dialog would open when clicking an objective.

Actual outcome

Clicking an objective in the map on an iOS device doesn't open the dialog.

Steps to reproduce

  1. Open the WvW map on Safari iOS.
  2. Choose a server from the dropdown.
  3. Click the objective.

Browsers Affected

  • Chrome
  • Firefox
  • Safari (iOS)
  • Edge
  • IE 11
  • IE 10

Settings

Make a modal that has user settings that will be saved in LocalStorage.

User settings will be anyting where you can modify your experience on the website.

Ideas for settings is atm:

  • Language selector that chooses the language returned from the API. Would make a better experience as talked about in #8.
  • Theme color selector (Core, HoT and PoF).

Better SEO handling

Right now titles are updated with the SEO title component. But descriptions should also be able to differ between the different pages. This would allow for search engines to better understand the website, since the text content is not super rich.

Demo on Stream Tools chat command generator

Find a way to show a demo of how a command would be with the generator.

Suggestions:

  • Twitch chat integrated on the page, using Nightbot (for 100% uptime of commands).
  • Make a "Test" button and then toast with a response.

Convert to Polymer 3

Should be done once Polymer 3 is released. Should be around a few weeks from when this issue is created. This should be able to be automated with Polymer Modulizer.

Down the line components should be rewritten to be made with LitElement rather than PolymerElement. This could result in a rather big rewrite of the project.

Also implement the new material design webcomponents instead of paper-elements.

More focus on active tab

Currently the active tab is not that visible. Look into putting a slightly darker background.

Directory Buttons don't change color

  • When changing color theme on the website, change the color of the Directory external link buttons.
  • Add secondary type button with primary color text and border for the "Official approval" buttons.

Disable AMD Transformation on build

FF finally has support for dynamic imports.
Edge will get it with Edge Chromium.

When a few more % of FF users has migrated to v67, then the build should be changed. Hopefully resulting in a slightly faster website, faster build time and smaller bundles.

Rebuild timer

Rebuild:

  • Rebuild timer using lit-element instead of polymer. Break it down into more components. Right now it is a nightmare of code.
  • Replace momentjs with something more lightweight.

New features:

  • Toggle AM/PM vs 24-hours vs "In X minutes"

Migrate fully to Lit-element

Over time the application should be fully migrated to use lit-element instead of the mix it uses currently.

While the migration is being done, a move should be made to get away from using Polymer Paper Elements, since these are very outdated and probably not gonna benefit from any ongoing support. If Material Design is still a wish for the project, then Material Components WebComponents should be used.

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.