[Lestrades.com] Nao 尚

  • I'm Share-Locked
  • Administrator
  • Posts: 1,183
  • Trades: 186
Re: What's up at Lestrade's?
« Reply #30,  »
No, you can still update them. I'll do a manual-automated final import of everyone's data right before I make everything public.

I'm considering doing a public beta, though. For a couple days-- make the trading system available for anyone to try it out, then delete everything and start from zero. But it's looking less likely because, well, my second tester didn't see any bugs so I guess it's solidified now.
I still need to implement 'Failed' offers, or just hide the damn button for now, and we should be good to go once I import everything. I'll tell you beforehand anyway.

joaoarena

  • Jr. Member
  • Posts: 99
  • Trades: 26
My real wishlist is on steam.
My wishlist here is for trading purposes.
I like to trade for games I do not own based on Want/Have Ratio, rather than other approaches.

[Lestrades.com] Nao 尚

  • I'm Share-Locked
  • Administrator
  • Posts: 1,183
  • Trades: 186
Re: What's up at Lestrade's?
« Reply #32,  »
Implemented (earlier today):
- Wanna know if a Barter friend is on LT? Can't find their nickname? Go to their Barter profile (/u/xxxxx) and replace 'barter.vg' with 'lestrades.com', you guessed it. You'll be redirected to their LT profile, if they have one. If it redirects you to your own profile, then your friend isn't there yet.
Re: What's up at Lestrade's?
« Reply #33,  »
Implemented:
- Importing Barter library. Woohoo.
I tested on mine and got a perfect copy. Note: this also removes playtimes... :( But OTOH, I guess it adds the ability to sort by date added. I'll restore playtimes later, I think it should work.
- Adding & removing games. Not enabled for users, but implemented. See below.

Removed:
- Ability to sync with Barter. Yes, the moment has come. ;)
I'm currently syncing wishlists, blacklists, tradables and barter libraries from everyone registered at Lestrade's.
After which I'll enable the ability to add & remove games from your lists.
- My sanity.

To do:
- Tag games. Yes, this one's gonna be complicated because I'm not sure about the UI I should have for it, so please bear with me for now. ^^
- Enabling trades! lol. That one.
- Ensuring that new users get their data imported from Barter-- 'just in case'. There are, after all, 7 or 8000 Barter users who haven't been to LT's yet. I'm not counting on all of mine, but at least 500 more would make sense.

Akylen

  • Full Member
  • Posts: 166
  • Trades: 46

/u/humpaaa

  • Full Member
  • ▶ ¦ Yep
  • Posts: 181
  • Trades: 9
Re: What's up at Lestrade's?
« Reply #35,  »
Quote from Nao 尚 on March 22nd, 2017, 08:30 PM
Removed:
- Ability to sync with Barter. Yes, the moment has come. ;)
I'm currently syncing wishlists, blacklists, tradables and barter libraries from everyone registered at Lestrade's.
After which I'll enable the ability to add & remove games from your lists.
- My sanity.
Happy to hear nothing of value was lost.Just kidding

If you need somebody to test with, i'm happy to help out.

Quantum

  • Newbie
  • Posts: 30
  • Trades: 4
Re: What's up at Lestrade's?
« Reply #36,  »Last edited
Quote from Nao 尚 on March 22nd, 2017, 08:30 PM
Removed
- Ability to sync with Barter. Yes, the moment has come. ;)
Hmmm, would it be a problem to still allow manual sync for tradeables? I'd imagine there are quite a number of people with trades ongoing on Barter or that did visit here once & are still using Barter now and will only start using LT later.

I assume that would overwrite all tradeables here, but that'd be fine.

[Lestrades.com] Nao 尚

  • I'm Share-Locked
  • Administrator
  • Posts: 1,183
  • Trades: 186
Re: What's up at Lestrade's?
« Reply #37,  »
@Quantum, those who haven't joined yet will be able to import from Barter. Others, not so much. I had to introduce a time limit at one point. If your lists are already on LT, then they will no longer be updated from Barter. I'm sure you can manually edit your items for a few more days. Many of us also have lists at Steamtrades-- and it's infinitely more annoying to synchronize.

@theemu, and another day without a public trading system! This time it was due (I think!) to some users who barter accounts were improperly imported, so they ended up with barter IDs like "1" instead of a real URL. There were ~25 users with such issues, I fixed them all, hopefully the scrape will reach its end this time.
But I'm also very tired, I only slept 4 hours last night, and I really need some. I'll check the database tomorrow morning. If it's working, then I'll save it, then run another scrape to synchronize everything for one last time. After that, you guys will have to move from Barter to LT and live with the lack of many 'comfort' features at Barter that I haven't had time (or the will) to implement here so far. I'll get to those.
Re: What's up at Lestrade's?
« Reply #38,  »
Quick note-- list building finished fine, but not the results I expected. I have something like 4000 tradables now, lol.
Will fix tomorrow.
Don't bother to use the match function!
Re: What's up at Lestrade's?
« Reply #39,  »
So, the 'unexpected results' were actually only for me... When scraping, if I didn't find a barter user ID I'd use the scraping user's ID, which is me, so I ended up with tradables from 20 people who registered recently and hadn't retrieved their Barter items yet. I fixed that, and I'm launching a FINAL BARTER LIST IMPORT.

That means, starting from NOW, your Barter wishlist, tradable list, blacklist and library will NO LONGER be updated.
In about 30 minutes, when everything is imported, I will retire the mass scraper (the individual Sync button is already inactive for now, and I'll end up removing it once I'm sure new users automatically get their libraries imported), and I will enable the ability to edit your lists.

Regarding editing lists-- for now it will be a very simple system: go to the game page, "remove from tradables/wishlist", there will be no way to directly edit your lists. This also means that it will delete the first game it finds in your list, so if you have multiple copies of a game on different sources, please wait until you remove it. I'm considering the ability to actually detect those multiple copies and allow you to remove one of them directly from the game page. :) (Barter didn't allow you to remove games from tradables from the game page, possibly because it didn't bother with figuring out which copy you wanted to delete.)

I'll be opening access to the offer system (and deleting current offers from beta testers, of course) around that time. Give me a couple hours max. to have everything up and running. :)
Re: What's up at Lestrade's?
« Reply #40,  »
- So... The database was properly imported, the scraper is now retired. It took me weeks to refine you, and in the end you only officially served for a bit over a month, still, thanks for existing!
- I'm now linking matches to user profiles on Lestrade's, rather than Barter.
- 'Inactive' links are now related to the user's last time on LT. The current threshold is one week. If you went online in the last week, you're "active". There is currently no option to mark your account as on hiatus.
- Ability to add/remove to your list is still being worked on. Give me another half hour. I wasted time writing this very post and thinking about consequences etc. This is the last thing stopping me from opening the offer system, so I'll need feedback! Here's my concern:

I was looking at my offer system, and more particularly the code that triggers when marking as completed. It removes the tradable from your list, but... Then it's no longer in the database, okay? And the offer system stores items by tradable ID, so that we can forever know that an old trade was for instance made for a Steam gift rather than cheap key of 'Bad Rats', or that it was tagged in a specific way, like "this copy is region-locked to France". However, if I remove the tradable from the list, it's data I can no longer access.

I'm looking for opinions on what to do. Since many of you are developers, and you wanna help, I'm open to suggestions really.

1/ Store tradable AND game ID in the database. It doesn't take too much space. That way, when the tradable is removed, at least we still know what game was in the trade. Who cares about whether it was a Steam gift...
2/ Store tradable, game ID, and trading tags from tradable. This potentially takes a lot of space. The advantage is I can limit the trading tags to what's important to trading, and clear them if the offer is not accepted, or it's accepted but that item isn't in the list of selected items.
3/ Store tradable only, and ALWAYS keep the tradable in the tradable table, except mark it as no longer owned. (Like, set quantity to a potential 'NULL' value, rather than zero.) This takes the most space out of all solutions. The tradable table is already quite large as it is. I can hardly imagine how large it would be if I kept all tradables from older trades. But this is probably (?) what Barter did, because I think it kept track of the store for each bundle item in an offer, even after canceling it and removing the item from your tradables. (Or did it???)
4/ Store game ID only, not tradable. Store tradable in a TEXT field along with ALL information on available items. Reduce TEXT size to minimum information needed after offer is completed. Because TEXT fields are stored in a file external to the database files (the database only holds a pointer to the object and its size), it's less likely to cause performance problems in the long term. I could even store those details in simple text files somewhere on the server, why not.

I'm more likely to go for option 1, the 'realistic' one and easiest to implement (given how much work I have, it wouldn't be a bad idea...), or option 4, the complicated but possibly most useful one.

/u/humpaaa

  • Full Member
  • ▶ ¦ Yep
  • Posts: 181
  • Trades: 9
Re: What's up at Lestrade's?
« Reply #41,  »
I would think option 1 is more then enough, for the use cases that will probably occur on the site.
Yes, there may be solutions that offer more comfort in ciche szenarios, but i don't think the added benefit would hpld up against the added complexity / the added time of your life devoted to implement a feature that is probably not useful for most of the userbase.

Silyus

  • Newbie
  • Posts: 7
  • Trades: 5
Re: What's up at Lestrade's?
« Reply #42,  »
IMHO option 2, but keep everything in a separate table, which stores only transactions already made, and purge it (on daily basis) of the transitions older than a week or so.
The tags should be useful to resolve troubles from the people involved in the trade which, in case, should arise early after the trade is done (hence the pruning after a week).
I can assume that the trade history is accessed only rarely (compared to other actions made by the user) so an overhead introduced by this solution shouldn't be a problem.

[Lestrades.com] Nao 尚

  • I'm Share-Locked
  • Administrator
  • Posts: 1,183
  • Trades: 186
Re: What's up at Lestrade's?
« Reply #43,  »
I'm only trying to think of the far future. If we end up having millions of previous trade offers, with an average of 5-6 games per offer that'd mean quite a lot of rows in that table... Meaning potentially slower trade feature, too (although at this point I can either remove trades from over a year prior or something).
The reason I'm asking this now is because once the trade system is open, well... It'll be harder to patch. In fact, MANY things will be harder to patch now on the site. ^^
I'm actually in the process of converting all barter IDs to LT IDs right now (although I was planning to do it later), because I fear that someone might make an operation on their lists exactly at the time I'm updating the IDs-- meaning potentially deleting someone else's tradable.
Really-- solidity comes first. It's just like releasing a game too early for its own good, eh?
Re: What's up at Lestrade's?
« Reply #44,  »
Just FYI, I re-imported Barter lists a few minutes ago.
I overhauled ALL of my code (believe me it was annoying >_<) to only use LT IDs, as mentioned above. It had to be done at one point.
I'm currently testing everything.