I've been thinking a while how to handle this. I only stumbled over it because @louis88 played around with his debugging console in the browser.
Maybe we're just slow and everybody else knows, as @aggroed said it'd be public knowledge. Then I wonder why in the same sentence he told me a website giving a preview was taken down, giving an advantage to people who know where to look for the information.
Long story short: The contents of a booster are not defined at the moment of opening the booster, as I expected before. What's inside is decided at the moment you buy it. And yes, you can view the contents of a booster before opening it.
So if you buy a booster from a 3rd party, be it Alpha or Beta, you should expect the seller to know exactly what they're selling to you.
In fact, I wrote a small script which can help anyone to sort out the less valuable packs. It's as simple as pasting it to a plugin like Greasemonkey. It'll check the next booster pack you'd open (or "gift") and you'll get an info about its current value. It even moves it to a second account if it's worth less than the defined threshold, or tells you that it's worth to open.
let threshold = 2.05;
var getJSON = function(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'json';
xhr.onload = function() {
var status = xhr.status;
if (status === 200) {
callback(null, xhr.response);
} else {
callback(status, xhr.response);
}
};
xhr.send();
};
getJSON('https://steemmonsters.com/cards/packs/?v=&token=&username=',
function(err, data) {
if (err !== null) {
alert('Something went wrong: ' + err);
} else {
let pack_id = data.packs[0].uid;
let pack_price = 0;
getJSON('https://steemmonsters.com/cards/load_pack/'+pack_id+'?player=&edition=1&v=&token=&username=',
function(err, data) {
for (let c = 0; c < 5; c++) {
let card_id = data.cards[c].card_detail_id;
let is_gold = data.cards[c].gold;
getJSON('https://steemmonsters.com/market/for_sale_grouped',
function(err,data) {
for(let i = 0; i < data.length; i++) {
if(data[i].edition == 1) {
if(data[i].gold == is_gold) {
if(data[i].card_detail_id == card_id) {
pack_price += data[i].low_price*100;
if(c == 4) {
let value = pack_price/100;
if(value < threshold) {
let obj = { to: ', qty: 1, edition: 1 };
steem.broadcast.customJson(
localStorage.getItem('key'),
[],
['<username>'],
'sm_gift_packs',
JSON.stringify(obj),
function(err, result) {
}
);
alert('Pack with ID '+pack_id+' and a value of '+value+'$ moved to sales account');
} else {
//open();
alert('Pack with ID '+pack_id+' and a value of '+value+'$ can be opened now');
}
}
}
}
}
}
}
);
}
}
);
}
});
It's a very basic tool, it'd be easy to group lower value packs to send them away all at once, or to open the worthy ones automatically.
There are a few people I suspect to actively abuse this matter, so I felt compelled to share this information.
If you want to buy booster packs, be safe and buy them from the original sources. Buying cheap from others will probably lead to disappointments, as they may keep the valuable cards for themselves.