Tenho tentado classificar os aplicativos pagos e gratuitos que comprei para o meu iPhone e iPad, mas não encontrei nenhuma maneira de classificar isso nos dispositivos ou no aplicativo iTunes real.
Basicamente, estou tentando construir um banco de dados de meus aplicativos em meus dispositivos.
A única maneira de fazer isso que encontrei foi acessar minhas compras na minha conta no iTunes e clicar em cada recibo individual, e anotá-los, e como você não consegue nem baixar o recibo ou copiar e colar, é meio que sem utilidade.
Isso não seria tão ruim se eu não tivesse 27 páginas de aplicativos para ler.
Até liguei para o suporte da Apple e pedi que me enviassem por e-mail uma lista completa dos meus aplicativos, eles disseram que sim, mas nunca recebi.
Então, descobri uma maneira de obter uma lista de todos os meus IDs da Apple e converter essa lista em preços e títulos reais, e até calcular o valor total gasto na App Store.
Para que isso funcione, você precisa de todos os seus aplicativos baixados no iTunes. Portanto, você precisará ir para a loja do iTunes e clicar em não está na minha biblioteca e em baixar tudo.
Passo 1
#!/bin/bash
# get list of App Store IDS from iPhone/iPad/iPod touch apps
# note: this will only get the ones you have actually downloaded in your iTunes
for f in ~/Music/iTunes/iTunes Media/Mobile Applications/*.ipa; do
unzip -p "$f" "iTunesMetadata.plist" |
sed -En "/<key>itemId<\/key>/I,/<integer>/I!d;s/^.*<integer>(.+)<\/integer>.*$/\1/Ip"
done
Você os adicionaria a um arquivo de texto
./getids.sh > ids.txt
Em seguida, precisamos obter os preços e títulos correspondentes a esses IDs, e esta pequena classe nos ajudará a fazer isso.
Passo 2
<?php
class App {
public $id;
public $price;
public $title;
function __construct( $id = false, $country = 'US', $language = 'en_us' ) {
$this->id = $id;
$this->json = file_get_contents( 'http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/wsLookup?country='.$country.'&lang='.$language.'&id='.$id );
$itunes = json_decode( $this->json, true );
$itunes = $itunes['results'][0];
$this->price = $itunes['price'];
$this->title = $itunes['trackCensoredName'];
}
}
A seguir, leremos a lista de ids gerada com o script bash.
<?php
include "api.php";
$file = 'ids.txt';
$fh = fopen($file,'r');
while ($line = fgets($fh)) {
$id = trim($line);
$app = new App( $id );
if(!empty($app->title)) { // Apps that were removed have no title
if($app->price != 0) {
echo 'ID: ' . $app->id . ' Title: ' . $app->title . ' Price: $' . $app->price . "n";
}
}
}
fclose($fh);
?>
E queremos enviar os dados para um arquivo
php grabprices.php > prices.txt
Agora temos um arquivo de texto com o id, título e preço dos aplicativos.
Bônus:
Para calcular o total do valor gasto na app store, aqui está um pequeno liner.
awk -F '$' '{sum += $2} END {print sum}' paid.txt | sed 's/^/$/; s/$/ Spent on the App Store/; s/(.*[0-9])([0-9]{3})/1,2/;t'
Github Link com todo o código aqui, além da lista de meus ids e preços como dados de amostra