CLI and Ruby tools for drone-maker DJI's store, account, and more
Switch branches/tags
Nothing to show
Clone or download
Latest commit 3774185 Jun 19, 2018

README.md

To support my open-source work, consider adding me on Patreon.

DJI

CLI and Ruby tools for drone-maker DJI's store, account, order status and more.

Installation

If you already have Ruby installed on your computer, you can install this. Otherwise, go install Ruby and come back to these instructions.

Open a command line (Terminal on macOS):

$ gem install dji

When updates are released, you can get them with:

$ gem update dji

If you do not manage your Ruby installations with RVM and are just using the system ruby, you might need to prefix the above commands with sudo, such as:

$ sudo gem install dji

If you are on Ubuntu Linux, you can do:

$ sudo apt install ruby ruby-dev
$ sudo gem install dji

Usage

Order Tracking

$ dji track [options]

REQUIRED:

  -o, --order ORDER_NUMBER    # Your order number
  -p, --phone PHONE_TAIL      # Last 4 digits of your phone number

OPTIONAL:
  
  -r, --repeat INTERVAL       # Repeat every INTERVAL seconds
  --publish                   # Publish your order details to http://dji-track.herokuapp.com/orders
  -c, --country COUNTRY       # Your country (use 3 letter code, such as USA)
  -t, --order_time TIMESTAMP  # The timestamp from your private order page at https://accounts.dji.com/user/orders surrounded by quotes (i.e. "2016-09-29 11:21:21 (UTC)")
  -u, --dji_username USERNAME # Your DJI Forum username
  -d, --debug                 # Some additional output used when emailing kevin@welikeinc.com for assistance

Example: Track an order

Use your order number in place of ORDER_NUMBER and the last 4 digits of your phone number for PHONE_TAIL. A full example might look like this:

$ dji track -o 123456789012 -p 1234

ORDER TRACKING AS OF 2016-10-27 01:12:27 -0700
------------------------------------------------------
Order Number     : 123456789012
Total            : USD $1,398.00
Payment Status   : Pay Confirmed
Shipping Status  : Pending
Shipping Company : Tba
Tracking Number  : 

Example: Track an order, every 60 seconds

If you want this to repeat automatically at an interval, specify the option for repeat (either -r or --repeat) with the number of seconds. Do not use this nefariously, I suggest a reasonable interval such as 60 seconds, but more useful is probably around 300 seconds (5 minutes) to 600 seconds (10 minutes).

$ dji track -o 123456789012 -p 1234 -r 60

Requesting order tracking details every 60 seconds. Press CONTROL-C to stop...

ORDER TRACKING AS OF 2016-10-27 01:29:36 -0700
------------------------------------------------------
Order Number     : 123456789012
Total            : USD $1,398.00
Payment Status   : Pay Confirmed
Shipping Status  : Pending
Shipping Company : Tba
Tracking Number  : 


ORDER TRACKING AS OF 2016-10-27 01:30:37 -0700
------------------------------------------------------
Order Number     : 123456789012
Total            : USD $1,398.00
Payment Status   : Pay Confirmed
Shipping Status  : Pending
Shipping Company : Tba
Tracking Number  : 

Example: Track an order, every 5 minutes, and publish details for others to see

$ dji track -o 123456789012 -p 1234 -r 300 --publish -u dronenerd -c USA

ORDER TRACKING AS OF 2016-10-27 01:12:27 -0700
------------------------------------------------------
DJI Forum Username : dronenerd
Order Number       : 123456789012
Total              : USD $1,398.00
Payment Status     : Pay Confirmed

   Country : USA Shipping Status : Pending Shipping Company : Tba Tracking Number :

You have successfully published your latest order status.
See order statuses reported by others at http://dji-track.herokuapp.com/orders

ORDER TRACKING AS OF 2016-10-27 01:17:28 -0700
------------------------------------------------------
DJI Forum Username : dronenerd
Order Number       : 123456789012
Total              : USD $1,398.00
Payment Status     : Pay Confirmed

   Country : USA Shipping Status : Pending Shipping Company : Tba Tracking Number :

You have successfully published your latest order status.
See order statuses reported by others at http://dji-track.herokuapp.com/orders

Search FedEx and track by reference

If you think your shipper is FedEx but you don't have a tracking code yet, you might be able to find your shipment by searching Fedex by reference. This allows you to search and track by reference.

$ dji track -c COUNTRY_CODE -p POSTAL_CODE

An example of searching in the USA (country code is us) with a postal code:

$ dji fedex -c us -p 94123

FedEx Packages for Country us, Postal Code 94123 as of 2016-10-27 03:44:37 -0700
-------------------------------------------------------------------------------------------------------

PACKAGE 1

Origin       : SHENZHEN, CN
Destination  : San Francisco, CA, US
Tendered     : 
Picked Up    : 
Shipped      : 2016-10-27 00:00:00 -0600
Est. Deliver : 2016-10-31 10:30:00 -0700
Dimensions   : 22x34x16 cms
Total Weight : 9.7 lbs (4.4 kgs)
Status       : Label created

If you want to search by a different reference, you can optionally pass it in:

$ dji fedex -c us -p 94123 --reference DJIGOODS

FedEx Packages for Country us, Postal Code 94123 as of 2016-10-27 03:50:57 -0700
-------------------------------------------------------------------------------------------------------

PACKAGE 1

Origin       : SHENZHEN, CN
Destination  : San Francisco, CA, US
Tendered     : 
Picked Up    : 
Shipped      : 2016-10-27 00:00:00 -0600
Est. Deliver : 2016-10-31 10:30:00 -0700
Dimensions   : 22x34x16 cms
Total Weight : 9.7 lbs (4.4 kgs)
Status       : Label created

You may also have it repeat the search on a regular interval (in seconds):

$ dji fedex -c us -p 94123 -r 120

Requesting FedEx tracking by reference DJIGOODS every 120 seconds. Press CONTROL-C to stop...

FedEx Packages for Country us, Postal Code 94123 as of 2016-10-27 03:53:41 -0700
-------------------------------------------------------------------------------------------------------

PACKAGE 1

Origin       : SHENZHEN, CN
Destination  : San Francisco, CA, US
Tendered     : 
Picked Up    : 
Shipped      : 2016-10-27 00:00:00 -0600
Est. Deliver : 2016-10-31 10:30:00 -0700
Dimensions   : 22x34x16 cms
Total Weight : 9.7 lbs (4.4 kgs)
Status       : Label created


FedEx Packages for Country us, Postal Code 94123 as of 2016-10-27 03:55:42 -0700
-------------------------------------------------------------------------------------------------------

PACKAGE 1

Origin       : SHENZHEN, CN
Destination  : San Francisco, CA, US
Tendered     : 
Picked Up    : 
Shipped      : 2016-10-27 00:00:00 -0600
Est. Deliver : 2016-10-31 10:30:00 -0700
Dimensions   : 22x34x16 cms
Total Weight : 9.7 lbs (4.4 kgs)
Status       : Label created

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/dji. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.