Git Product home page Git Product logo

bltool's Introduction

bltool

A command line tool for managing a Backloggery game collection, including bulk add/delete and import from Steam and Xbox Live.

NOTE: This project is no longer maintained. It is known to have issues with the current version of the backloggery site.

Installation

Download the latest release from the Github releases page and unzip it. At this point you can import your games from Steam by editing steam2backloggery.bat (windows) or steam2backloggery.sh (Linux/OSX) to have the correct login information, then running it; if you need more contronl, you can run it directly from the command line with java -jar bltool.jar <arguments>.

If you want to build from source, it uses Leiningen, the standard Clojure build tool; use lein uberjar to build or lein run to run. To create a release zip, use ./release.sh <version>.

Homebrew on Mac OS X

You can also install bltool using the Homebrew package manager for Mac OS X.

$ brew update
$ brew install bltool

To upgrade bltool in the future, just use upgrade instead of install.

Usage

Usage: bltool <command> [<args>]

 Switches                       Default  Desc
 --------                       -------  ----
 --from                                  What type of data source to read the games/edits from. Use '--help formats' for a list of formats.
 --to                                    What type of destination to write the changes to. Use '--help formats' for a list of formats.
 --steam-name                            Steam Community name
 --steam-platform               PC       Default platform to use for Steam games (recommended: PC, PCDL, or Steam)
 --xbox-name                             Xbox Live GamerTag
 --xbox-360-platform            360      Default platform to use for Xbox 360 games (recommended: 360, Xbox, XBLA, XNA, or XbxGoD)
 --xbox-one-platform            XBO      Default platform to use for Xbox One games (recommended: XBO, Xbox, XbxGoD)
 --bl-name                               backloggery username
 --bl-pass                               backloggery password
 --bl-region                    0        backloggery region number to use for new games (0=USA, 1=Jpn, 2=PAL, 3=Chinao, 4=Korea, 5=Brazil)
 --no-bl-stealth, --bl-stealth  true     use 'stealth add' and 'stealth edit' when updating backloggery
 --help                                  Show detailed help. Try 'bltool --help (formats|usage)'
 --filter-from                           Read a list of games from this source, and exclude them from the output.
 --filter-input                          For file-based filters, read filter contents from this file.
 --input                        -        For file-based formats, read input from this file. '-' means stdin.
 --output                       -        For file-based formats, write output to this file. '-' means stdout.
 --name                                  Include only games where the name contains this string.

You will need to at least specify --from and --to to specify input and output formats; some formats may require additional arguments. See the next session for details on how to use them.

Supported data sources/formats

This tool can read and write a variety of sources. The --from and --to
options control what formats it reads and write; the --input and --output
options control what file it writes to or reads from, for formats that are
stored in files.

Format       RW  Desc
------       --  ----
backloggery  RW  Backloggery game library. When writing, equivalent to bl-add.
bl-add        W  Add new games to Backloggery.
bl-edit*     RW  Edit existing games, overwriting current information.
                 In read mode, gets all game info, not just basic info (slow!)
bl-delete     W  Delete all listed games; all properties except ID are ignored.
steam        R   Game list from Steam Community
xboxlive     R   Game list from Xbox Live
html*         W  HTML file that can submit changes to Backloggery
text         RW  User-editable plain text
edn          RW  Machine-readable EDN
json         RW  Machine-readable JSON

* Not yet implemented

Instructions for specific formats

  • backloggery, bl-add, bl-edit, bl-delete

    These all read or modify your backloggery game list. You'll need to specify --bl-name and --bl-pass so that it can log in to backloggery as you. If adding games, you might want to also use --filter, which will exclude games already on your backloggery. If you want bulk adds/deletes to show up on your multitap, use --no-bl-stealth as well.

  • steam

    This reads your Steam game list from http://steamcommunity.com/id/<name>. This means that your Steam profile has to be public, and you need to use --steam-name to tell it what name to use. This needs to be the name that appears in your Steam Community URL, not your Steam login name or display name. The default platform it uses for games from Steam is "PC"; you can use --steam-platform to override this.

    This version will now automatically tag games imported from Steam as unfinished (rather than unplayed) if Steam has hours on record for the game. Bear in mind that games you've played offline or games you played before Steam tracked hours might not be detected this way.

  • xboxlive

    This reads your Xbox Live game list from your Xbox Profile. This means that your XBLA profile has to be public, and you need to use --xbox-name to tell it what GamerTag to use. This needs to be your GamerTag, not your Microsoft Account e-mail address. By default it reads both Xbox 360 and Xbox One games (if you have them) and uses the appropriate platform for them; you can use --xbox-360-platform or --xbox-one-platform to override this. All Xbox games are imported as unfinished since generally they must have been played to show up in the Xbox Live register. In addition, games are imported as completed if you have 100% of their GamerScore.

    This functionality depends on a free account from xboxapi.com which is subject to usage limitations. Since the usage limit is 120 requests per hour and a full import only requires 3 requests, this shouldn't be too much of a problem, but if this service does break or go away then this function will no longer work.

  • text

    This is a tab-separated format, one line per game, with the fields ID, platform, status, and name. ID is the Backloggery game ID (or 0 for games that weren't imported from Backloggery). platform is the game's platform; it defaults to PC but can be any platform Backloggery supports. status is one of "unplayed", "unfinished", "beaten", "completed", "mastered", or "null". Name can contain anything at all (including tabs and other whitespace) and is thus the last field.

    The platform needs to be the platform ID that backloggery uses; for example, "PCDL", not "PC Downloads". At the moment the only way to get a complete list is to "view source" on backloggery's add-a-game page.

    This is a file oriented format, so you probably want --input <file> (when using --from text) or --output <file> (when using --to text). Otherwise it will read from and write to the terminal.

  • edn

    This saves or loads the game list in Extensible Data Notation format. It is primarily useful if you want the game list in a machine-readable format for use with other tools.

    Like text, it is file-oriented and should be combined with --input or --output.

Examples

Download your game list from backloggery for a look:

bltool --from backloggery --to text --output games.txt --bl-name MyName --bl-pass TopSecret

Import your game list from Steam to Backloggery, editing the game list first. Note that you need the backloggery login options for --filter to work, since this also downloads your backloggery game list and excludes any games you already have there.

bltool --from steam --to text --output games.txt --steam-name MyName --bl-name MyName --bl-pass TopSecret --filter-from backloggery
edit games.txt
bltool --from text --to backloggery --input games.txt --bl-name MyName --bl-pass TopSecret

Import your game list from Steam in one step with no editing, filtering out games already on backloggery:

bltool --from steam --to backloggery --steam-name MyName --bl-name MyName --bl-pass TopSecret --filter

Filter out duplicates from your Backloggery game list (in one step - you probably want to double-check this first, in reality!):

bltool --from backloggery --bl-name MyName --bl-pass TopSecret --output text \
| sort | uniq -d -f3 \
| bltool --from text --to bl-delete --bl-name MyName --bl-pass TopSecret

Remove all of your DLC from backloggery, using "stealth delete":

bltool --from backloggery --to bl-delete --name DLC --bl-stealth --bl-pass TopSecret --output text

Bugs

Two features (html output and backloggery edit support) are not yet implemented.

Apart from that, bug reports are welcome! Post them on github and it'll email me.

License

Copyright © 2013 Ben "ToxicFrog" Kelly, Google Inc.

Distributed under the Apache License v2; see the file LICENSE for details.

bltool's People

Contributors

hyphz avatar jawshooah avatar mikemanger avatar toxicfrog 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bltool's Issues

Getting error: "Unable to access jarfile bltool.jar" (What am i doing wrong?)

Keep getting this error: "Error: Unable to access jarfile bltool.jar"
What am i doing wrong?

My Steam2Backloggery, and CMD output (With password replaced with *'s):

steam2backloggery.bat file:

REM =====================
REM USER SETTINGS GO HERE
REM =====================

set STEAM_NAME=jacobmix
set BL_NAME=backloggery jacobmix
set BL_PASS=backloggery **********
set EDITOR=notepad

REM =========================================
REM NO USER SERVICEABLE PARTS BELOW THIS LINE
REM =========================================

REM Java on windows is a complete nightmare, and doesn't always properly get
REM added to %PATH%. So we add a bunch of plausible directories here.

SET PATH=%PATH%;"D:\Java\jdk1.8.0_31\bin"

java -jar bltool.jar --steam-name "%STEAM_NAME%" --bl-name "%BL_NAME%" --bl-pass "%BL_PASS%" --filter-from backloggery --from steam --to text --output games.txt
%EDITOR% games.txt
java -jar bltool.jar --bl-name "%BL_NAME%" --bl-pass "%BL_PASS%" --from text --to backloggery --input games.txt

CMD output:

C:\Windows\system32>cd /D "D:\bltool-master"

D:\bltool-master>steam2backloggery.bat

D:\bltool-master>REM =====================

D:\bltool-master>REM USER SETTINGS GO HERE

D:\bltool-master>REM =====================

D:\bltool-master>set STEAM_NAME=jacobmix

D:\bltool-master>set BL_NAME=backloggery jacobmix

D:\bltool-master>set BL_PASS=backloggery **********

D:\bltool-master>set EDITOR=notepad

D:\bltool-master>REM =========================================

D:\bltool-master>REM NO USER SERVICEABLE PARTS BELOW THIS LINE

D:\bltool-master>REM =========================================

D:\bltool-master>REM Java on windows is a complete nightmare, and doesn't always
properly get

D:\bltool-master>REM added to C:\Program Files\Common Files\Microsoft Shared\Win
dows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\P
rogram Files (x86)\Python27;C:\ProgramData\Oracle\Java\javapath;C:\Program File
s (x86)\Intel\iCLS Client;C:\Program Files\Intel\iCLS Client;C:\Windows\system
32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.
0;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program F
iles\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Inte
l\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R
) Management Engine Components\IPT;C:\Program Files (x86)\AMD\ATI.ACE\Core-Stati
c;C:\Program Files\Calibre2;C:\Program Files (x86)\Livestreamer;C:\Program File
s (x86)\Windows Live\Shared;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Comm
on;C:\Program Files (x86)\Skype\Phone. So we add a bunch of plausible directori
es here.

D:\bltool-master>SET PATH=C:\Program Files\Common Files\Microsoft Shared\Windows
Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Progr
am Files (x86)\Python27;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x
86)\Intel\iCLS Client;C:\Program Files\Intel\iCLS Client;C:\Windows\system32;C
:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C
:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files
\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\In
tel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Ma
nagement Engine Components\IPT;C:\Program Files (x86)\AMD\ATI.ACE\Core-Static;C:
\Program Files\Calibre2;C:\Program Files (x86)\Livestreamer;C:\Program Files (x
86)\Windows Live\Shared;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C
:\Program Files (x86)\Skype\Phone;"D:\Java\jdk1.8.0_31\bin"

D:\bltool-master>java -jar bltool.jar --steam-name "jacobmix" --bl-name "backlog
gery jacobmix" --bl-pass "backloggery **********" --filter-from backloggery --from
steam --to text --output games.txt
Error: Unable to access jarfile bltool.jar

D:\bltool-master>notepad games.txt

D:\bltool-master>java -jar bltool.jar --bl-name "backloggery jacobmix" --bl-pass
"backloggery **********" --from text --to backloggery --input games.txt
Error: Unable to access jarfile bltool.jar

Here's my DxDiag txt file if it's gonna help: http://pastebin.com/XRQb7DH7
I've already set some environment variables before. If that might be a problem.
Some can be seen here: http://prntscr.com/7twyp0
Also can't find a actual bltool.jar file anywhere.

Writing to Backloggery Failing

Hello again!

I know I just pointed out the authentication issue and I apologize for being a thorn in your side, but it looks like the import is failing as well. Perhaps it's similar to the authentication issue or a change in formatting for the webscraper (https usage where http used to be)? I don't intend to put work on your plate or appear to be demanding a fix, I just found the bug and thought I should report it.

import

Exception in thread "main" - UnknownHostException steamcommunity.com

Having an issue where bltool cannot get anything from steam nor from backloggery. Java is not finding the address.

Windows 7. Internet connection is fine. Using Google DNS. Both sites accessible from browser. Firewall disabled. Have tried running as an administrator.

C:\Users\Gavin\Downloads\bltool-0.1.2>java -jar bltool.jar --steam-name "gavinzac" --bl-name "GavinZac" --bl-pass "*****" --filter --from steam --to text -
-output games.txt
Exception in thread "main" java.net.UnknownHostException: steamcommunity.com
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(Unknown Source)
at java.net.InetAddress.getAddressesFromNameService(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefa
ultDnsResolver.java:45)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHost
name(DefaultClientConnectionOperator.java:278)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnect
ion(DefaultClientConnectionOperator.java:162)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedCli
entConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(Default
RequestDirector.java:643)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultReq
uestDirector.java:479)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpCl
ient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpCl
ient.java:805)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpCl
ient.java:784)
at clj_http.core$request.invoke(core.clj:277)
at clojure.lang.Var.invoke(Var.java:415)
at clj_http.client$wrap_request_timing$fn__1630.invoke(client.clj:633)
at clj_http.client$wrap_lower_case_headers$fn__1627.invoke(client.clj:62
4)
at clj_http.client$wrap_query_params$fn__1568.invoke(client.clj:502)
at clj_http.client$wrap_basic_auth$fn__1573.invoke(client.clj:518)
at clj_http.client$wrap_oauth$fn__1577.invoke(client.clj:528)
at clj_http.client$wrap_user_info$fn__1582.invoke(client.clj:541)
at clj_http.client$wrap_url$fn__1614.invoke(client.clj:599)
at clj_http.client$wrap_redirects$fn__1441.invoke(client.clj:189)
at clj_http.client$wrap_decompression$fn__1463.invoke(client.clj:258)
at clj_http.client$wrap_input_coercion$fn__1517.invoke(client.clj:393)
at clj_http.client$wrap_additional_header_parsing$fn__1538.invoke(client
.clj:436)
at clj_http.client$wrap_output_coercion$fn__1508.invoke(client.clj:347)
at clj_http.client$wrap_exceptions$fn__1422.invoke(client.clj:141)
at clj_http.client$wrap_accept$fn__1548.invoke(client.clj:464)
at clj_http.client$wrap_accept_encoding$fn__1554.invoke(client.clj:478)
at clj_http.client$wrap_content_type$fn__1543.invoke(client.clj:454)
at clj_http.client$wrap_form_params$fn__1592.invoke(client.clj:565)
at clj_http.client$wrap_nested_params$fn__1610.invoke(client.clj:589)
at clj_http.client$wrap_method$fn__1587.invoke(client.clj:548)
at clj_http.cookies$wrap_cookies$fn__277.invoke(cookies.clj:121)
at clj_http.links$wrap_links$fn__307.invoke(links.clj:50)
at clj_http.client$wrap_unknown_host$fn__1619.invoke(client.clj:608)
at clj_http.client$get.doInvoke(client.clj:715)
at clojure.lang.RestFn.invoke(RestFn.java:410)
at bltool.data.steam$fn__26.invoke(steam.clj:29)
at clojure.lang.MultiFn.invoke(MultiFn.java:227)
at bltool.core$execute.invoke(core.clj:70)
at bltool.core$_main$fn__51.invoke(core.clj:107)
at bltool.core$_main.doInvoke(core.clj:104)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at bltool.core.main(Unknown Source)

--from steam doesn't work when run from jar

Not sure if I'm even doing anything wrong but when I try to add my Steam games to Backloggery, it finds all my Backloggery games and puts them no where while creating a blank games.txt file, after that it show's me the blank text document and after I close that it logs into my Backloggery account, does nothing then quits. Here is a log of what happens:

C:\Users\Raymond Tracer\Downloads\bltool-master\bltool-master\target>steam2backl
oggery.bat

C:\Users\Raymond Tracer\Downloads\bltool-master\bltool-master\target>set STEAM_N
AME=********

C:\Users\Raymond Tracer\Downloads\bltool-master\bltool-master\target>set BL_NAME
=RaymondTracer

C:\Users\Raymond Tracer\Downloads\bltool-master\bltool-master\target>set BL_PASS
=********
C:\Users\Raymond Tracer\Downloads\bltool-master\bltool-master\target>set EDITOR=
notepad

C:\Users\Raymond Tracer\Downloads\bltool-master\bltool-master\target>java -jar b
ltool-0.1.1-standalone.jar --steam-name "********" --bl-name "RaymondTracer"
--bl-pass "********" --filter --from steam --to text --output games.txt
Logging into Backloggery as RaymondTracer
Fetched 0 games from Backloggery...
Fetched 49 games from Backloggery...
Fetched 98 games from Backloggery...
Fetched 147 games from Backloggery...
Fetched 196 games from Backloggery...
Fetched 246 games from Backloggery...
Fetched 296 games from Backloggery...
Fetched 346 games from Backloggery...
Fetched 396 games from Backloggery...
Fetched 446 games from Backloggery...
Fetched 496 games from Backloggery...
Fetched 545 games from Backloggery...
Fetched 595 games from Backloggery...
Fetched 641 games from Backloggery...
Fetched 690 games from Backloggery...
Fetched 740 games from Backloggery...
Fetched 783 games from Backloggery...

C:\Users\Raymond Tracer\Downloads\bltool-master\bltool-master\target>notepad gam
es.txt

C:\Users\Raymond Tracer\Downloads\bltool-master\bltool-master\target>java -jar b
ltool-0.1.1-standalone.jar --bl-name "RaymondTracer" --bl-pass "********" --from
 text --to backloggery --input games.txt
Read 0 games in text format.
Writing game list to backloggery.
Logging into Backloggery as RaymondTracer

C:\Users\Raymond Tracer\Downloads\bltool-master\bltool-master\target>

And bltool-0.1.1.jar doesn't work at all

C:\Users\Raymond Tracer\Downloads\bltool-master\bltool-master\target>java -jar b
ltool-0.1.1.jar
Exception in thread "main" java.lang.NoClassDefFoundError: clojure/lang/IFn
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.getMethod0(Unknown Source)
        at java.lang.Class.getMethod(Unknown Source)
        at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: clojure.lang.IFn
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 6 more

Body may not be null error on text upload

I'm trying to push a tsv file of games to backloggery.

My tsv looks like:
0 PC Unplayed Tacoma

Error returns: Adding null game 'null' to backloggery:
Error adding game '' -- check your input data.

I can upload the whole tsv if necessary.

Support For Steam Categories

Hello!
I label my steam categories as completion states, identically to backloggery (i.e. null, complete, beaten, etc).
Are there any plans to implement this into the app? It would save lots of time :)

JSON output?

JSON is kind of a lingua franca for data storage and serialization - I think it would greatly increase the interoperability with software written in other languages and make it easier to parse in languages with no good support for parsing EDN. Could it be possible to implement this?

Unable to log in to Backloggery

When attempted to run a custom command or using the pre-built batch file, attempts to log into Backloggery fail. After the return "Logging into Backloggery as X" the error "Unable to log in to Backloggery. Please check your username and password" is shown. I quadruple-checked and made sure that the correct login info is set in the designated variables and confirmed that my account is not locked.

I don't know if you're using an API or a webscraper, but perhaps Backloggery changed something and now the login functionality is broken? I know this is sort of an abandoned project at this point (no offense or disrespect intended, I loved BLTool when I could get it to work!).
backloggery

Xbox Live import: "A new login is required to get fresh access tokens"

I'm unable to fetch my Xbox Live games. Here's the command I used and its output:

$ bltool --from xboxlive --to text --xbox-name jawshooah --output xboxgames.txt
Got Xuid {
    "success": false,
    "error_code": 500,
    "error_message": "A new login is required to get fresh access tokens"
} for gamertag jawshooah .
Found 0 Xbox 360 and 0 Xbox One games.
Couldn't find any games for Xbox Live GamerTagjawshooah -- are you sure you specified the right --xbox-name?

Connection times out after adding a few games

The program seems to be working correctly with no errors at first, but after a number of games get added, the website seems to blacklist the IP from where the program runs, resulting in the website as a whole to remain irresponsive for prolonged periods of time before becoming functional for said IP again, probably being intentional design to counteract denial of service attacks. I believe that a mechanism should be added to prevent the program for sending too many request in a small time frame to avoid triggering the mechanism.

Java on Windows is full of spiders

The JRE installer does not always properly set up $PATH or put the java binaries in $PATHed directories. The batfile should probably put some "best guess" directories in $PATH when it runs in hopes of picking them up, probably C:\Program Files{, (x86)}\Java\jre{6,7}\bin.

Exception in thread "main" javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated for XBox live

Steam imports work fine, but when trying to do the same for XBox I get:

java -jar bltool.jar --from xboxlive --to backloggery --xbox-name <xbl name> --bl-name <name> --bl-pass <pass>
Exception in thread "main" javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
	at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:431)
	at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:126)
	at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:437)
	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643)
	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
	at clj_http.core$request.invoke(core.clj:277)
	at clojure.lang.Var.invoke(Var.java:379)
	at clj_http.client$wrap_request_timing$fn__1651.invoke(client.clj:633)
	at clj_http.client$wrap_lower_case_headers$fn__1648.invoke(client.clj:624)
	at clj_http.client$wrap_query_params$fn__1589.invoke(client.clj:502)
	at clj_http.client$wrap_basic_auth$fn__1594.invoke(client.clj:518)
	at clj_http.client$wrap_oauth$fn__1598.invoke(client.clj:528)
	at clj_http.client$wrap_user_info$fn__1603.invoke(client.clj:541)
	at clj_http.client$wrap_url$fn__1635.invoke(client.clj:599)
	at clj_http.client$wrap_redirects$fn__1462.invoke(client.clj:189)
	at clj_http.client$wrap_decompression$fn__1484.invoke(client.clj:258)
	at clj_http.client$wrap_input_coercion$fn__1538.invoke(client.clj:393)
	at clj_http.client$wrap_additional_header_parsing$fn__1559.invoke(client.clj:436)
	at clj_http.client$wrap_output_coercion$fn__1529.invoke(client.clj:347)
	at clj_http.client$wrap_exceptions$fn__1443.invoke(client.clj:141)
	at clj_http.client$wrap_accept$fn__1569.invoke(client.clj:463)
	at clj_http.client$wrap_accept_encoding$fn__1575.invoke(client.clj:478)
	at clj_http.client$wrap_content_type$fn__1564.invoke(client.clj:454)
	at clj_http.client$wrap_form_params$fn__1613.invoke(client.clj:565)
	at clj_http.client$wrap_nested_params$fn__1631.invoke(client.clj:589)
	at clj_http.client$wrap_method$fn__1608.invoke(client.clj:548)
	at clj_http.cookies$wrap_cookies$fn__298.invoke(cookies.clj:121)
	at clj_http.links$wrap_links$fn__328.invoke(links.clj:50)
	at clj_http.client$wrap_unknown_host$fn__1640.invoke(client.clj:608)
	at clj_http.client$get.doInvoke(client.clj:715)
	at clojure.lang.RestFn.invoke(RestFn.java:423)
	at bltool.data.xboxlive$xboxapi_request.invoke(xboxlive.clj:37)
	at bltool.data.xboxlive$fn__2272.invoke(xboxlive.clj:58)
	at clojure.lang.MultiFn.invoke(MultiFn.java:231)
	at bltool.core$execute.invoke(core.clj:75)
	at bltool.core$_main$fn__2310.invoke(core.clj:114)
	at bltool.core$_main.doInvoke(core.clj:111)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at bltool.core.main(Unknown Source)

Unable to detect games

Hello. I'm getting an error

Couldn't find any games at http://steamcommunity.com/id/[MYPROFILE] - are you sure you specified the right --steam-name?

I'm 100% sure it's the right name, the link takes me to my profile page on Steam community.
Everything on my profile's privacy settings is public, yet it still can't detect games. What is going on?

Encoding Issue

Hi,

special characters are not submitted correctly when using JSON files that are encoded with UTF-8 (as the encoding seems to default to US-ASCII).

Here's a fix to alleviate this issue. It might be a good idea to program a more general solution, however.

Unable to filter out duplicates

Hello,

I'm trying to filter out duplicates in my backloggery due to accidentally using bltool twice, and I'm trying to use the code you displayed on the main page:

bltool --from backloggery --bl-name MyName --bl-pass TopSecret --output text
| sort | uniq -d -f3
| bltool --from text --to bl-delete --bl-name MyName --bl-pass TopSecret

Regardless if I put in the correct log in information steam2backloggery.bat shuts down each time. I'm almost unable to read the error code. But I think it says unrecognized batch command or something along those lines. I apologize, I'm not too familiar with Java but I can't figure out what's the problem.

On a side note, is it possible to change the platform from PC to Steam? Or would I have to manually add all 350ish games? Because man, that would be a pain.

Can't get Xbox games

I've created a new xboxapi account and changed the api key, just to avoid the rate limit problem, but I got stuck as well :
I try to run the bat as follow:

java -jar bltool.jar --from xboxlive --to text --xbox-name MYNAME --output xbox_games.txt

and get the following error message:

Got Xuid {"xuid":"xguid_code_here"} for gamertag MYNAME.
Found 0 Xbox 360 and 0 Xbox One games.
Couldn't find any games for Xbox Live Gamer MYNAME -- are you sure you specified the right --xbox-name?

I can correctly see the output from the xboxapi website, so i think there's a problem in the data checking and extracting part of the code.

Xbox input returns Error code 500

"java -jar bltool.jar --xbox-name "%XBOX_NAME%" --bl-name "%BL_NAME%" --bl-pass "%BL_PASS%" --filter-from backloggery --from xboxlive --to text --output games.txt
%EDITOR% games.txt
Got Xuid {
"success": false,
"error_code": 500,
"error_message": "A new login is required to get fresh access tokens"
) for gamertag [Gamertag]"

Sorry I'm still sort of new to this sort of thing.

`--from text` copes poorly with bad input

If a line is damaged (for example, because braindead Notepad inserts a BOM for UTF8 text), it will merrily read the entire file and then try to output garbage. If your output is text or EDN it means you get a nonsensical record. If your output is backloggery it means it tries to pass an empty body to the HTTP library and then crashes.

It should throw properly when it encounters a malformed record.

No support for collections

Backloggery lets users organize games into "collections" of related games. In the game list, these show up as a single entry for the collection, which can be expanded. When expanded, it makes an AJAX request to the server that then populates it with the collection contents.

These contents use the same format as the game list proper and thus parsing them should be trivial. The easiest way to implement this is probably to have bl-extract-params extract the params not just for the next page but also for all collection contents, and read-games handle this properly and process the entire queue produced by each bl-extract-params call.

'completed' status causes error

btool will add all games up until the first one listed in the file as 'completed' and then crash. Changing the status of all 'completed' games to 'beaten' fixes this.

Support reading password from stdin or a file

Testing some stuff has shown me that logging in, at least on the backloggery side with a password that contains a % (at least as the last character) breaks bltool. The % is ignored and it tries to login without it.

This is a valid password character and should work, but doesn't.

Everything is unplayed

I tried importing my games into Backloggery using this tool and it has imported all my games as unplayed, rather than checking how much time was played to see if it's actually unplayed or not.

There also doesn't seem to be a way to clear out my account. I'm not about to manually edit 300+ games!

The API has an endpoint which will return the playtime.

http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=%s&steamid=%s&include_played_free_games=1&include_appinfo=1

How to set game regions on import?

How is it possible to set game regions (want to set PAL) on import from steam?

And is there a documentation on the supported file formats?

Create importable `bltool-sources.jar`

When importing bltool.jar into Eclipse, there's no available source attachment that can be used for code debugging. This along with the lack of an available JavaDoc makes knowing the callable functions for bltool confusing.

image

Nothing happens when I run .bat

I edited the info for steam ID, BL name and password. Just brings up a blank notepad.

I added - SET PATH=%PATH%;"C:\apps\Java\jre7\bin;C:\apps\Java\jre6\bin" - because I think that's where my java is installed. This was added above - SET PATH=%PATH%;"C:\Program Files\Java\jre7\bin;C:\Program Files\Java\jre6\bin" - so now there are 3 lines there now. Still just a blank notepad.

Freezing on adding games from steam to backloggery

It was hanging on the "Logging in to backloggery" and i thought it was just failing somewhere but after about an hour it then updated with a whole heap of games at once being added, then every 20 minutes or so kept that cycle up until it got to here where it's just not doing anything from here out. I left it running over night because it's going through 1000 games so I thought "well maybe it's just adding them all at once and will update it all at once at the end like it's sort of been doing?" but it's still hanging on just this

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.