open All Channels
seplocked EVE Technology Lab
blankseplocked Yapeal PHP API library (revision 1203 branches/keys/)
 
This thread is older than 90 days and has been locked due to inactivity.


 
Pages: first : previous : ... 2 3 4 5 [6] 7 8 9 10 ... : last (24)

Author Topic

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.02.23 20:08:00 - [151]
 

My general principal is to make each rowset a new table or anything that acts like a rowset ie attributeEnhancers and attributes in CharacterSheet became their own tables even though they aren't exactly a perfect match. I've also been naming the tables by the name attribute given to the rowset but here that's a problem as you have StandingsTo and StandingsFrom with rowsets having the same names (corp, alliance, etc) :P

Quote:
(one of them an enum field for the rowset name)

I don't think a enum is way to go as I've generally tried to keep the tables free of any MySQL only data types so if someone wanted to port them to another DB backend that ADOdb supports it would be easier. It's better to use a plain text field and have a list of values that is enforced in the PHP instead. I did that with MarketOrders for the buy/sell field as an example. Where I have used MySQL specific SQL I've also tried to isolate it into a function so it only has to be changed one place to make porting easier should someone want to do so.

Ok after looking at the both APIs some more the way I'd do the character one is to have the 5 tables named charStandingsToCharacters, charStandingsToCorporations, ..., charStandingsFromFactions. This does end up with 5 tables but it stay more in line with how the other tables have been done I think. The corporation ones look somewhat more complex at first but you can basically use the same system with them. corpCorporationStandingsToCharacters, ..., corpCorporationStandingsFromAgent, ...,corpAllianceStandingsToCorporations, ...

Doing it this way does result in a large number of small tables with long table names but will make getting data back out in applications easier I believe.

You've managed I believe to have picked one of the harder APIs to tackle first :)

Having said all that if you feel like trying it the other way with the change from enum to a char column and post it so we can take a look at what you're thinking. Maybe we'll get some input from others and see what they think would be easier and make more sense when trying to use it.

Ramov Tinoga
Tinoga Enterprises
Posted - 2009.02.24 08:31:00 - [152]
 

Originally by: Dragonaire
Ok after looking at the both APIs some more the way I'd do the character one is to have the 5 tables named charStandingsToCharacters, charStandingsToCorporations, ..., [..]

Doing it this way does result in a large number of small tables with long table names but will make getting data back out in applications easier I believe.

When you're ok with 12 more tables, then I'm ok too. It's much easier to maintain in the code when there's just a multiupsert for each rowset without having to tackle the different cases. Smile I had second thoughts because each half of the 12 tables has identical structure (fromID, fromName, standings / toID, toName, standings).

Quote:
You've managed I believe to have picked one of the harder APIs to tackle first :)

Now that you mention it.. Laughing It's the one I'm missing most at the moment, so I started with that, "charStandingsFromNPCCorporations" to be particular. Cool


Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.02.24 17:25:00 - [153]
 

If you're interested and have a Gmail account (it's free) I can add you on to the project if you'd like. Just contact me via either the E-mail from the code or my Gmail one which you can figure out from the project. If you decided you want to do that please include you Eve character name some where in the title so don't I delete it with the spam Wink

Anyone else that's interested in developing one of the other APIs is also welcome to email about joining the project.

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.02.26 18:44:00 - [154]
 

Hi again thought I'd let everyone know we now have a new Russian translation for the installer that someone did for us. Like to thank John for getting that for us.

While I talking about translations for it I'd like to see a few more so if any of you are interested in helping us out with them please contact either me or Satis Iqulenax about doing so.

revision 602

Caelon Bissau
Posted - 2009.02.27 06:50:00 - [155]
 

This seems like a simple problem but I can't find any reason for it to behave this way.

New install and I've set yapeal.php in a cron job but the only output I get is that it thinks I'm running it in a web browser and sends me that error message instead.

Any thoughts?


Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.02.27 08:33:00 - [156]
 

You're probably on a Debian or hosted site using Debian or something similar that has the CGI version of first in your path. Most better hosting will have a wiki or other resource to help you with what you need to do. If you can't figure it out on your own on a hosted site contact support and get some help. If you have console access you can also look around usually and find the CLI version of php somewhere.

Once you know the location for the CLI version of PHP you just need to use the alternate crontab instructions from wiki.

http://code.google.com/p/yapeal/wiki/CrontabSetup

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.02.27 08:37:00 - [157]
 

Edited by: Dragonaire on 03/03/2009 14:20:27
Sorry for all the dup posts guys Had some strange Internet connection problems and thought they hadn't gone through EmbarassedRazz

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.02.27 08:39:00 - [158]
 

Edited by: Dragonaire on 03/03/2009 14:21:15
Another dup Razz

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.02.27 08:42:00 - [159]
 

Edited by: Dragonaire on 03/03/2009 14:22:11
Dup 3 Crying or Very sad

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.02.27 08:46:00 - [160]
 

Edited by: Dragonaire on 03/03/2009 14:24:17
OMG Can't believe it did it this many times Shocked

Phobos v2
Big Bang Industries
Langers R'Us
Posted - 2009.03.02 22:18:00 - [161]
 

Edited by: Phobos v2 on 02/03/2009 22:30:15
I was wondering if anyone could point me in a direction here. I've installed Yapeal, setup the tables and corrected the ini file. When I run the cron job for eve-api-pull.php i just get this in response..

X-Powered-By: PHP/5.2.8
Content-type: text/html

It doesn't populate the tables or any logs.... Not sure what i have done wrong..

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.03.02 23:55:00 - [162]
 

First thanks for trying Yapeal. That you're getting anything that looks like headers talking about html suggests your not using the CLI version of PHP or it's mis-configured. Also you should be running yapeal.php not backend/eve-api.pull.php as that's change but the documentation hasn't caught up yet. Here's a few question/ideas of things that might help in figuring out the problem:

Where are you see that output because you shouldn't every get that kind of output from Yapeal.

It would be helpful to know what OS (Linux I assume since you said crontab) you're run it on etc

If you look at the cache/log/ directory the log files there might help you figure out what the problem is or help me know what's going on anyway Wink

Did you try running it manually from the command-line before trying it as a crontab because you'll get to see more what's going on when you do that usually.

Have you tried changing 'log_level' in config/yapeal.ini to E_ALL like suggested in the example for testing?

Have you tried changing all the settings to the suggested ones for testing from the example they should give you a lot more information about what's going on both on the command-line and in the log files.

Last thing that I probably don't have to say but better safe than sorry Smile Have you checked you have the latest from the subversion? Current revision is 620 something at this time.

Phobos v2
Big Bang Industries
Langers R'Us
Posted - 2009.03.03 08:33:00 - [163]
 

Edited by: Phobos v2 on 03/03/2009 08:33:20
Thanks for your quick response, I have a feeling it might be that I haven't got CLI php. I certainly have debug on full and don't get anything from it in the logs. And now i've moved to pointing the cron job at yapeal.php i'm getting the message that i'm running it as a web page (i'm getting these by outputting the results to a file as I don't have cli access to my server).

Thanks :) I'll come back once i've worked through what you've suggested :D

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.03.03 14:28:00 - [164]
 

Okay just something to add since you're on a hosted site without command-line access Razz Have a look at my post in 156 sound like a similar problem and you'll probably end up having to do something like that.

Phobos v2
Big Bang Industries
Langers R'Us
Posted - 2009.03.03 18:26:00 - [165]
 

Working now, php path in as per one of the recommendations on your cronjobs pages :)

THanks dragonaire :D

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.03.04 06:36:00 - [166]
 

Good to hear and since you said something about them and reminded me, I've now gone through the Linux pages and updated them to be in line with newest revisions of Yapeal.

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.03.05 23:27:00 - [167]
 

Hi again I'm like to announce a new improved Yapeal for you all to try out. I'll give a quick list of changes here.

  • Fixed bug with charWalletTransactions. This may require you to alter a table, details below.

  • Added standings API for characters and corporations. Thanks to Ramov Tinoga for making it and writing such nice clean code made it easy to test and add with only minor additions.

  • APIs to pull can be selected on a per char/corp basis ie if you only want to get CharacterSheet and AccountBalance for a character or only AssetList and MarketOrders for a corp now you can.

  • Updated configurer thanks to Satis Iqulenax. It now includes an update section for those of you upgrading a recent version.

  • Configurer now let's you select which APIs you wish to get. Needed to work with change above.

  • The usual minor tweaks and improvements etc that I never seem to run out of Smile



Here's the SQL you'll need to run to fix the charWalletTransactions table.
Quote:
ALTER TABLE `charWalletTransactions` DROP COLUMN `characterID`;
ALTER TABLE `charWalletTransactions` DROP COLUMN `characterName`;


You'll still need the latest revision of Yapeal to have it work right but these changes can be made either before or after updating as needed.

As always bug reports or a thank you are welcome.

We are currently working on a couple more APIs and Satis Iqulenax has started working on an addition to the configurer so you can use it to upgrade Yapeal using a single button more information on these changes as the code is closer to being done.

revision 656

Goonda
Minmatar
DOMINATIO
Posted - 2009.03.07 14:06:00 - [168]
 

It took me a while to set this thing up. Like a few others here, I dont have command line access on my server. Now that I have it running, it is great.

I am planning to create a Drupal plugin with features similar to Out of Eve, and this seems like the perfect API library to base it off of.

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.03.07 20:51:00 - [169]
 

Glad you like it and good luck with the application.

Goonda
Minmatar
DOMINATIO
Posted - 2009.03.10 19:37:00 - [170]
 

I'm really loving this thing. It is very powerful and is making my site development a lot easier. Which is a must, considering that I am teaching myself PHP, SQL, and the EVE-API as I go.

Also, about the code you are working on to auto-populate the utilRegisteredCharacter and utilRegisteredCorporation tables. I actually prefer the current situation with complete application-side control of those tables. It allows better flexibility, even if it does take a little more code in the application.

I have one suggestion regarding the corp tables. Currently the ownerID fields within the corp tables is only the corporationID, but does not include any character related information. Would it be possible to add another "ownerID" field with character identifiers?

Maybe call it ownerIDchar, and have it contain a space delimited list of the characterID for each character (registered in utilRegisteredCorporation) that can get that info from the API.

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.03.10 23:42:00 - [171]
 

Hi glad to hear it's helping you out developing your application.

I've limited the utilRegisteredCorporation to using only one characterID because it made Yapeal much easier to program plus I believe easier to use since you only need to associate one character with the corporation to use it.

Quote:
I have one suggestion regarding the corp tables. Currently the ownerID fields within the corp tables is only the corporationID, but does not include any character related information. Would it be possible to add another "ownerID" field with character identifiers?

If it did that I'd also have to make it part of the primary key which would mean we'd end up have multiple
copies of say corpCorporationSheet or corpAssetList which isn't a good thing. Which is the correct one? How do we handle the extra record when a director leaves the corp for example? Plus it just not good database practice to do so to better understand why look up database normalization.

Quote:
Maybe call it ownerIDchar, and have it contain a space delimited list of the characterID for each character (registered in utilRegisteredCorporation) that can get that info from the API.

This is also related to the above as to why not to add a column for this but to help you out developing the list for your needs I'll show you how to get this information from the existing APIs. First some background information you should know. The CEO of a corporation has full access to all the corp APIs using their full APIkey. Also any Directors in the corp has full access. Some of the APIs also let you have access by just being a member of the corp or by having some role in the corp like accountant, etc. There are a couple ways to look up if a character has the needed roles in a corporation. One is to use the charCorporationRoles* tables but requires that the char is registered and active. The other way to do it is to use the corpMemberTracking table which is much easier and only requires the corp API to be active. Using it does make for a bit of a chicken and egg problem when setting stuff up but that something that you'll have to solve as an application developer Wink I will give you a hint on finding the corp members with director access though. You'll need to do something like this:
Quote:
SELECT `characterID`,`name` from corpMemberTracking WHERE (`roles` & 1) = 1;


Hopefully that helps you understand the reasoning and ways you can get the information you need.

Goonda
Minmatar
DOMINATIO
Posted - 2009.03.11 00:17:00 - [172]
 

Thanks for the lesson on database structure. I always like learning new things, and its tough trying to figure everything out from scratch.

Originally by: Dragonaire
Some of the APIs also let you have access by just being a member of the corp or by having some role in the corp like accountant, etc. There are a couple ways to look up if a character has the needed roles in a corporation.


This is the part that I'm having trouble figuring out. I understand CEOs and Directors having full acccess, but it is the partial access for regular members and other roles that I'm trying to figure out. I suppose the issue is more of an API question than anything.

I can't seem to make any sense of the 'roles' column within the corpMemberTracking table. Which is outputting values like '575900001641700992' and '9223372036854775807'. The charCorporationRoles* tables would probably serve this same purpose. In either case, the issue then becomes figuring out which roles allow access to which corp info. Another pair of general API questions.

If I could find some resource that had the above info, I could figure it all out.

My feature request above was all about trying to work around this entire issue.

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.03.11 06:58:00 - [173]
 

The first link in the sticky above is best resource http://www.eveonline.com/ingameboard.asp?a=topic&threadID=1006676
You'll also find a few more links on the main page there to places like Chucker's that covers some of the same stuff in different ways and also stuff that Eve-Dev doesn't. There's also an example class for dealing with roles that I put out for people to use and abuse in the API Building blocks section near the bottom you should find useful. Basically the roles are in a 64bit long bit map so you need to mask it to find out which ones are set.

Sondrou Xi'Tral
Gallente
Priory Of The Lemon
Atlas Alliance
Posted - 2009.03.13 23:19:00 - [174]
 

I've been playing around with this quite a bit over the past few days since this seems to be almost exactly what I am looking for when it comes to pulling API data for my alliance website. There are some questions I have, but first I want to post a fix I have come up with that may solve some problems you may have if setting this up on a site with shaed hosting.

Concerning the crontab setup, my hosting company has set the server's CLI php.ini to read only, and the only way to get the CLI to read your custom php.ini is by adding some information to the cronjob. I was getting errors stating that mysqli was not installed when I ran the cronjob, but the CGI (phpinfo()) showed that I had it enabled (as did the check in the setup.php file). However when I went to my CLI and typed php --info, I saw that I was not only using PHP4, but some of the required extensions were missing from my CLI. The fix for this is three parts.

1) Contact your hosting company and find out what the path to PHP5 is. For instance, I have two paths for PHP, one for PHP4 (usr/local/bin/php) and one for PHP5 (usr/local/bin/php5). If this is the case MAKE SURE YOU USE THE PHP5 PATH.

2) Create a php.ini file and place it somewhere on your webserver that is not able to be browsed to, i.e. if you have something like ftpname -> html -> mysite.com, place it in the ftpname folder. A standard php.ini that you can edit to your needs can be found here. All you have to do is remove the ";" from the front of the extensions you want to use.

3) Modify your cronjob to point to the new php.ini in the following format:
/path/to/php5 -c /path/to/php.ini /path/to/yapeal.php -c path/to/yapeal.ini

This got me up and running on my shared host (aplus.net), and hopefully it can help some of you out as well.

Since this post is already long enough, I'll make another post with my questions :)

Sondrou Xi'Tral
Gallente
Priory Of The Lemon
Atlas Alliance
Posted - 2009.03.13 23:29:00 - [175]
 

Ok, now for my questions:

I am running an alliance website, and each member that registers to the site provides either their limited or full api key upon registering, so I can check to ensure they are a member of the alliance. I am planning on adding other feature with the API keys, but with over 200 registered members, it will be tedious as hell if I have to run the setup.php to add each one of them.

Currently my registration asks for the API User ID, the API Key, and whether it is Limited or Full, and saves this to a database table combining the info with their website ID. What I need to know is, is there a way that I can have Yapeal look to this table (in the same database as the Yapeal tables) for the API information without breaking anything. Also, is there a way to make it so that I only have to supply the API User ID and the API Key, and Yapeal can run a job to collect the Character ID's of all the character's associated with that account, as well as those Character's Corp ID's?

If I can't make Yapeal look to my current API table and pick the API info from there, I can always do a cron import of the data once every few days, but I would really need to be able to have Yapeal take the API User ID and API Key from the utilRegisteredUser table and populate the utilRegisteredCharacter and utilRegisteredCorporation tables with all the Character ID's and Corporate ID's.

Any tips would be very appreciated!

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.03.13 23:44:00 - [176]
 

Thanks for sharing you tips for things to look for and the workarounds. Only thing I'd add to your post is that in 3) if you used
/path/to/php5 -c /path/to/php.ini -f /path/to/yapeal.php -c /path/to/yapeal.ini
it might be better though the '-f' is supposedly optional.

Goonda
Minmatar
DOMINATIO
Posted - 2009.03.15 02:17:00 - [177]
 

What do you think about the idea of adding foreign keys (for delete cascade) to each of the char* and corp* tables (and possibly the accountCharacters table)?

It would sure make deleting characters, corps, and accounts a lot easier.

Tenshi Ryu
Posted - 2009.03.15 07:09:00 - [178]
 

Edited by: Tenshi Ryu on 15/03/2009 07:12:53
Originally by: Dragonaire

NEW HOME http://code.google.com/p/yapeal/



Can someone please tell me where the heck on the above website I can download this? I been over it from top to bottom .... NOTHING!!!!

pleeeeeeasse help ... I really wanna try this.

Dragonaire
Caldari
Corax.
PURgE Alliance
Posted - 2009.03.15 07:44:00 - [179]
 

Edited by: Dragonaire on 15/03/2009 14:46:56
Had the tables done that way before in the API application I made that Yapeal developed from and I ended up taking them out because trying to get it all working was a nightmare. Also some people don't want their skill list to disappear when they delete their CharacterSheet for example. Also how do you handle corpMemberTracking when someone leaves one corp for another and they are both in the same DB? Much better for that logic to be in the application code where each developer can decide how they want to handle it. I've tried not to build in any interdependences between API tables as any that are added might interfere with someone's application they are making with it. There were several things that got designed into Yapeal as it was because how I had used things in my other programming that I've been slowly trying to remove so as to make Yapeal more useful for more applications.

Gorfob
Minmatar
GoonFleet
GoonSwarm
Posted - 2009.03.15 10:10:00 - [180]
 

Originally by: Tenshi Ryu
Edited by: Tenshi Ryu on 15/03/2009 07:12:53
Originally by: Dragonaire

NEW HOME http://code.google.com/p/yapeal/



Can someone please tell me where the heck on the above website I can download this? I been over it from top to bottom .... NOTHING!!!!

pleeeeeeasse help ... I really wanna try this.


This man makes a point. UNless we are supposed to grab the source from the source viewer on the website there is no link to download it.


Pages: first : previous : ... 2 3 4 5 [6] 7 8 9 10 ... : last (24)

This thread is older than 90 days and has been locked due to inactivity.


 


The new forums are live

Please adjust your bookmarks to https://forums.eveonline.com

These forums are archived and read-only