Giter Site home page Giter Site logo

exodus4d / pathfinder Goto Github PK

View Code? Open in Web Editor NEW
370.0 370.0 240.0 174.11 MB

Mapping tool for EVE ONLINE

Home Page: https://www.pathfinder-w.space

License: MIT License

PHP 22.47% HTML 10.22% CSS 8.52% JavaScript 58.79%
api ccp eve-online exodus4d fat-free-framework mapper pathfinder php wormhole

pathfinder's People

Contributors

andrewmunro avatar arkezar avatar caffe1neadd1ct avatar dessix avatar exodus4d avatar kill4free avatar maurerit avatar morpheusxaut avatar skiedude avatar tralafiti avatar

Stargazers

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

Watchers

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

pathfinder's Issues

k-space sec status rounding

Systems with a true sec of 0.45+ are showing as low sec, they're actually still 0.5.

I'd guess line 73 of app/main/data/mapper/ccpsystemsmapper.php would be where this should be changed since this is set to < 0.5 currently.

New frontend build process (Gulp integration)

Add a Gulp (http://gulpjs.com/) based build process for all frontend ressources.
Combine current js, css build steps into a single build process

The long-term goal is to remove compass (vendor prefixes + macros) and switch to (https://www.npmjs.com/package/gulp-sass) .

Models need to be updated

On inspection it appears the models are not updated to what they are being used for.

Specifically when generating the tables with cortex.

Disabled HTTPS

Hello again,

I receive a ERR_CONNECTION_REFUSED when I try to access pathfinder (Probably because I don't have mod_ssl enabled, and I don't want to enable it, plus I don't have a certificate to use with it)

Is there any way to disable HTTPS in pathfinder ? (I even tried commenting out some rewrite rules but it keeps redirecting me to HTTPS, you probably hardcoded it :/ )

Thanks.

z-Killboard backend integration

The z-Killboard integration should be implemented as a backend PHP Service instead of frontend Ajax requests directly to the API.

pro:

  • caching
  • not reaching the API request limit

Codebase incompatible with nginx

The issue can be found at https://github.com/exodus4d/pathfinder/blob/master/app/main/controller/controller.php#L178

The use of apache_get_headers is not available when running php-fpm under nginx (obviously). To get around this, I added the following code:

// apache_request_headers replicement for nginx
if (!function_exists('apache_request_headers')) { 
        function apache_request_headers() { 
            foreach($_SERVER as $key=>$value) { 
                if (substr($key,0,5)=="HTTP_") { 
                    $key=str_replace(" ","-",ucwords(strtolower(str_replace("_"," ",substr($key,5))))); 
                    $out[$key]=$value; 
                }else{
                    $out[$key]=$value; 
        }
            } 
            return $out; 
        } 
}

I'm sure there may be a better solution, but this got me up and running quickly.

New registration mail

In order to make the registration process more transparent for new user. It would be nice to send Emails with account information (username + password) to new users.
This also counts for existing users who change their password.

Hint: New accounts are ready active right after the first registration step is accomplished. Required API information can be added in "map view" aswell.

Needs a documented build process, preferably integrated with composer

I have completed a successful install of this program by reverse engineering the static database info that is needed to power the mapping system. Based on my work I would like to open some tickets for better structuring this app for public consumption.

The first major suggestion will be to remove all dependencies that are distrubited with this application and use package managers to effectuate a build and install system around them.

There are many issues right now with trying to use this app in a semi-production environment while keeping up with alpha/beta frequency changes to things like ini setting files that are potentially overwritten when we do a git pull on our local clones.

Setting up your php dependencies to use composer will greatly help get this setup and working correctly. We can write tasks to help setup the project and change the app around internally so that your not committing your production pathfinder.ini settings to this repo.

So, to have a list of things I am suggesting with this issue:

  • Download specific versions of F3, Cortex, etc with composer and use composer for autoloading your classes.
  • Rename all .ini settings files to *.ini.default and create an after clone action to copy these files back to the .ini extension
  • Include in the .gitignore file composer phar or package downloads. Do the same with the ini extension changes above.
  • Include a script to auto-download and populate the configured SDE database with the latest mysql SDE from fuzzworks
  • Include a script to insert base schema into the configured main application database from a .sql file for now
  • Include a script that can be executed to pre-populate the database with cached info once the sde and main databases are installed. There are controller functions that you are using to update/populate some helper tables, that needs to be made easier to access.

I would heavily consider using the Symfony Console and Symfony Process components to build out the installer features listed above. Then we can reuse it to enable things like proper crontab executed jobs that dont block for unlucky users and helper functions to do interesting things with the site.

Missing DB population?

I am attempting to get a working instance of this setup, however I cannot find any sql file or any function that creates the needed tables.

[Sun Aug 30 01:40:22 2015] PDOStatement: Table 'pathfinder.user' doesn't exist
[Sun Aug 30 01:40:22 2015] [app/lib/base.php:2015] Base->error(500,'PDOStatement: Table 'pathfinder.user' doesn't exist')

System tooltip position wrong on map scroll

The tooltip position (player count) in wrong. If the system is not visible (map scrolled to the left) and the player tooltip updates, the positon of the tooltip is not displayed correctly.

Solution: Add "viewport" param to tooltip.

New account delete option

Users should be able to delete/remove their account

TODO:

  • New menu entry "delete account"
  • new confirmation dialog (re-enter password, enter captcha)
  • logout user
  • remove user session
  • clear user/map cache (API info is autom. deleted "ON CASCADE")
  • send mail to user
  • write new logfile with IP information

Registration/Sign up - failure

Step 2 of the registration (API Key),
link for API key setup did bring me to API Key Management but not to the "update page" ( Home > Support > API Key Management > Update ) where there would be adjustments selected.

while trying to find the information for the correct minimum API key adjustments I either got auto logged off or missklicked and closed the Pathfinder registration-page, which resulted in not finishing the registration.

After trying to register again I get a "500: save config error internal Server Error" and "Error email already exists" message. Seams like my email is saved although the registration is not finished/valid.

Login with the first selected name and password is not working ("wrong name and password" message).
Last thing I would have tried was to request a new password (might be i misswrote the name?), but I could not find any "forrgot/request password" button.

Sig updater loops and other few lil things

Hi there, my corp put up a beta server to give this tool a try but I'm not the one hosting it so I don't have access to the logs and reports in general.

Take this as a quick feedback on the first few hours of use. I must say I was rather impressed, everything works pretty well or at least it's not utterly broken which is already something for the state of the early beta. I spotted only one major problem and it's about the sig updater. It basically loops indefinitely and doesn't add the sigs. Selecting and "deleting all" gave me a msg of "1 sig to delete, confirm?" kind of msg, and this went on for a while untill for some reason they all got deleted finally. Problem is during and after this looping the tool loses track of my position. I'm basically stuck in the system where the sig updater looped and this is pretty bad. Closing the browser and re-opening it doesn't fix the problem as long as the sig updater is looping. Also, cpu spike on my task manager. I tried to copy and paste the log output in my client but it didn't work, same with the "download .cvs" at least I didn't find it. It was a problem updating client data of some sort though and I suppose it is mostly related to the IGB actually because I had pathfinder running on win too and at least it did add the new systems I was jumping into even if it still showed me on the "one in loop". This was not happening in the IGB.

Other lil issue spotted: not sure exactly why and when but sometimes it doesn't create the connections when jumping in a new hole, especially when you're running a private map aside the master one. It looks like it updates only the active one and then adds the system on the other one (no connection though) if you switch tab for a while. This means if you stay on a private map for say 5 jumps, those won't be recorded on the master one. It seems also like it loses the tracking of my position on the master map if I hop into a private one and I jump off system. I still can add the systems manually but it's a bit awkward.

Another small thing not working as intended is the poke on rally points. I'm not sure what it should do but I don't get any notification nor ping in windows when me or someone else adds a rally point in a shared map. I can see the flashy system in the win browser but no notification/alarm.

Ok sorry for the wall of text, hope it was useful. The tool is pretty awesome, have a nice day and code harder o7

πŸ‘

system tooltips are broken

System tooltips (player count) are broken after jumping between the same systems multiple times.
Mouse over schows a broken tooltip (visible HTML within this tooltip)

database update issue during api-key registration

After getting a beta-key by mail and starting the registration process the system presents a dialog asking for the API-keys. I created a new key and copied the info into the dialog.
When clicking "next" the attached message comes up.

(To be precise, first i clicked "add" and then "next", realized that now the dialog contained 2 fields, one being empty, and removed the empty field again. In any case the error stays the same.)

image

Show static WHs of a System

The static wormhole(s) of a system should be visible in the system detail view.

Fill the static table "wh_statics" with data and make the WH data visible.

User SESSION handling should be improved (DB SESSION)

In the current version (v.0.0.13) all user SESSION data is file base stored in the default location (check php.ini session.save_path) -> usually something like "/tmp" (PHP default behaviour)


With the upcoming version (v.0.0.14), the SESSION handling will be moved to the DB (MySQL).

Advantages:

  • Better performance! (DB queries are much faster than read/edit file based Sessions).
  • Improved security! Session hijacking is much more complex. (Session data is now protected by IP, UserAgent and CSRF comparison)
  • Better scalability! (if someone plans to run PATHFINDER on a Server Cluster, you donΒ΄t have to worry about Session mirroring ) :-)
  • New opportunities! With a DB-based Session handler it is much easier to figure out, who is currently active, online,...

More infos: F3 Session

IGB headers not properly parsed when using IIS

The php implementation of apache_request_headers in windows based versions of php alters the case of the returned IGB header information. This in turn means that the IGB header information is not parsed correctly.

Under XAMP, the header data returned is "EVE_TRUSTED"
Under Windows the Header data is "Eve-Trusted"

File : app\main\controller\controller.php
Line: 115 thru 130

Need to review case sensitivity and underscore/dash characters when parsing this data. See http://php.net/manual/en/function.apache-request-headers.php for other options.

Unable to load index.php server 500 "PHP Fatal error: Invalid class Controller\\Controller"

I'm trying to setup pathfinder on my debian box and have databases configured and apache2 all going, but I get an ambiguous error when attempting to load the index.php page in my apache logs:

mkdir(): Permission denied PHP Fatal error: Invalid class Controller\\Controller in ~/pathfinder/pathfinder/app/lib/base.php on line 1598

Any ideas? I did not see a specific bug issue on the git tracker.

# php -v PHP 5.6.14-1+b1 (cli) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

I have run a recent apt-get update / upgrade so everything should be current for Debian Sid

JS Cache busting not working as expected

Cache-Busting for production (build) *.js files is not working as expected.

TODO:

  • remove mod_expire for *.js files from .htaccess
  • implement a new cache-busting strategy for *.js files.
    • unique file name (add version param [main.js?v=x.x.x]
    • as result stronger Cache-Headers should be possible

Add support for multiple DB-object instance caching

The current version v.0.0.12 does not support global caching for DB connect objects [new \DB\SQL();]. Therefore, any DB "switch" (e.g. search Solarsystem information in SDE export,...) results in a disconnect and reconnect to the requested DB.

Any active DB connection is instantly terminated and may result in a DB-Error.

This will be fixed in v.0.0.13. Any DB has its own cached global object instance which persists active and will never be overwritten.

Caching problem (multiple characters same user)

If a user has logged in with his account on different browsers (IGB, OGB). Die map data is not "in sync" between different characters. This causes that maps are not correctly shown/updated.

I did several smaller improvements (see commit) to fix that problem.

Issues using app with MySQL

I have been working on various scripts to get this project running in a docker container. You can find my progress at https://github.com/andrewmunro/pathfinder-docker. Eventually I was going to create a pull request to this repo if you feel it's relevant.

Anyway, upon running the project, I had various issues with the databases running in MySQL 5.7.9. Firstly, the eve database table names pulled from https://www.fuzzwork.co.uk/dump/mysql-latest.tar.bz2 are named differently, it seems that pathfinder uses the lowercase version to retrieve them:

  • invtypes (is actuallyinvTypes`)
  • mapconstellations (is actually mapConstellations)
  • mapdenormalize (is actually mapDenormalize)
  • maplocationwormholeclasses (is actually mapLocationWormholeClasses)
  • mapregions (is actually `mapRegions)
  • mapsolarsystems (is actually mapSolarSystems)

I had to manually rename these tables to get the app working correctly πŸ‘Ž

Secondly, I had various errors by incorrect or undefined default values:

  • In table system, columns effect, security, constellation, region, name, description and alias, are set to NOT NULL but no default values were set causing PHP errors.
    • Adding DEFAULT '' to the sql to generate these columns fixed this.
  • In table user, column lastLogin, the default value is incorrect
    • Because the column type is timestamp, I had to change the value 0000-00-00 00:00:00 to 1970-01-01 00:00:00

Unable to import database in Mysql

Hello,

I am unable to import the .sql in Mysql, also, I also had to change the php upload_max_filesize (only becxause I'm using phpMyAdmin I think) value to more than 2M (by default), maybe you should note it in the installation documentation, could be useful.

MySQL Versions prior to Version 5.6.5 are not supported

The database contains multiple tables that have two TIMESTAMP fields. This is not supported in versions of MySQL prior to version 5.6.5 Specifically, It is not possible to have the current timestamp be the default value for one column and the auto-update value for another column.

Several internet Hosting providers do not yet use this version of My SQL. For example Hostgator is still running at version 5.5.23 and cannot give any indication of a date when their MySQL version will be upgraded.

The problem with 2 columns and multiple timestamps is described here ...

http://stackoverflow.com/questions/267658/having-both-a-created-and-last-updated-timestamp-columns-in-mysql-4-0

deleting API keys

Deleting your API key in the Eve-Account Management seems to break stuff in PF.

You can't delete the old key in PF and adding a new one causes a 500 internal server error. (even though it seems to get added)
It also causes character selection and tracking to break.

Fix for table names in CCP sql dump

Hi,

After fast testing, I think doing this in install process should fix the table names:

sed 's/\(\(TABLE\|EXISTS\) `\)\([^`]*\)\(`\)/\1\L\3\4/g' mysql56-vanguard-1.0-114986.sql > fixed.sql

ps. didn't test importing yet.

Internal Server Error after moving systems on Map

After moving a system on a map, I get an error 500: internal system error. An "Emergency Shutdown" splashscreen appears and the account is logged off.

The account can no longer log in after this error occurs. Seems to be an error with drawing the map after systems are moved.

To resolve this error I need to delete the "system" , "map" and "user_map" records from the database.

Unfortunately my php debugger doesn't catch any exception so Im not sure where to start looking for the bug.

[WIP] New "user interaction" dialog

There should be a "user interaction" dialog, that shows a overview of all "active" pilots and some additional information and interaction options (IGB).

Use cases:

  • "I want to invite all active pilots in my current system to my fleet" ...
  • "I dont know thisuser", -> "start convo" and ask him ...
  • "I need help!" Send quick invite all active pilots within 5 jumps to my fleet ...

Objective :

  • Bundle all pilots information (active pilots on map), and visualize them on.
  • Povide some IGB functions ("fleet invite", "start convo", "add contact", ...), or even allow "batch" function calls for multiple pilots at once.
  • Implement some nice feature options (e.g. "show me all active Legions", "show me all active pilots from one corporation", ...)

Error in controller.php

PHP Fatal error: Can't use method return value in write context in /var/www/app/main/controller/controller.php on line 285
I did some research and it says that it only occurs in PHP 5.5 and lower but i got this while on 5.6.14.

Anyways made the correction.

$errorCode = $f3->get('ERROR.code');
    if(!empty($errorCode)){
        $f3->status($f3->get('ERROR.code'));
    }

Import/Export of maps

With the growing number of external installations of Pathfinder, i would like to add an Import/Export feature for maps.

Features:

  • Maps can be exported and downloaded.
    • Map data is downloaded as a *.json file (map, system, connection data)
    • Signatue data will not be exported
    • The user can set the name for the JSON file
  • Maps can be imported
    • The user can select a JSON file for map import
    • The user can choose a map name and a map scope (private, corporation, ally) for the new map

With this feature, we can build up a "map library" like "Dotlan" with pre-saved k-space maps that can be imported

export
for PvP-roams or PvE-Ops.

Missing form error on "dublicate" API Key information

If a user is trying to add/save a API Key that is already stored in table user_api (unique col), there is no visible form error displayed.

Solution:

  • Create a new API Key for this user
  • ... OR remove/change the API Key that is already stored

Info:
The column "keyId" is unique for security reason. This will prevent anyone else to register an API Key that is already bound to someone else. Any "User" has to have its unique API Key information.

Empty label

Hello again,

Sometimes, this happens :

The label just says "empty" when you jump out of that system.

Error on step #1 of registering

Running this on
Debian Wheezy 7.8, Nginx, Mysql 5.6
Tried to register and got a 500 error
checked the log and saw this
syntax error, unexpected '(array)' (array) (T_ARRAY_CAST) in /var/www/app/main/model/basicmodel.php on line 371
Fatal error: syntax error, unexpected '(array)' (array) (T_ARRAY_CAST)

Broken (player count) tooltip after system movement

Hello,

So sometimes, this happens :

Also when I set the

; time for status change visibility in header (ms)
PROGRAM_STATUS_VISIBLE = 1000

[PATHFINDER.TIMER.UPDATE_SERVER_USER_DATA]
DELAY = 1000

(To make it faster to refresh data) it's just glitching a bit.. for exemple if someone jumps from a WH to another, it creates the new wormhole label, but it doesn't add any link to it.

"Map tracking" (Character log) -> Models are not in sync with Cache

The Cronjob (deleteLogData()) that cleans up the character_log tabe should be changed. In the past, all table data was removed (truncated). There are some problems with this:

  1. The related (cached) models CharacterLogModel still exist
  2. Recently updated/inserted character log data is removed from DB, whitch is not intended and results in unnecessary DB load to re-add those LogData.

Error.log > HTTP 404

Hello,
When I open my apache error.log I can see entries like that.

http://hastebin.com/eyejulumuv.coffee

(You can notice there is something weird like Base->error(404), referer: http://www.pathfinder.polaris-industries.com/var/www/html/pathfinder/)

Is it a normal behavior or I misconfigured something ? What could cause that.

Usefull Informations :

BASE = /var/www/html/pathfinder
URL = http://www.pathfinder.polaris-industries.com
Virtualhost = http://sakarias.eu/u/20150923201849.png

500 Internal Server Error

Some people from my corporation get that error when they are trying to login, I can still login, some other people can still login.

It was working fine yesterday, nothing changed on the server.

Database Schemas not released.

Hi. yes, I know you have not released these on purpose. But really, they are badly needed before we can offer any feedback or development assistance.

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.