Skip to content

Commit

Permalink
release for haobtCNY
Browse files Browse the repository at this point in the history
  • Loading branch information
philsong committed Oct 15, 2015
1 parent 13284c7 commit 54b7dc8
Show file tree
Hide file tree
Showing 27 changed files with 1,188 additions and 39 deletions.
26 changes: 22 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
btcbar
======

A tiny status bar widget for OS X that displays the latest USD/BTC spot price from BitStamp, BTCe, and Coinbase.
A tiny status bar widget for OS X that displays the latest USD/BTC spot price from several USD and CNY exchanges.

## Screenshot

Expand All @@ -19,14 +19,32 @@ Simply place btcbar.app in your `/Applications` folder, and optionally add it to

## Download

The current version of btcbar (2.1.4) can be downloaded here:
The current version of btcbar (2.2.1) can be downloaded here:

https://github.com/nearengine/btcbar/releases/download/v2.1.4/btcbar_2_1_4.zip
https://github.com/nearengine/btcbar/releases/download/v2.2.1/btcbar_2_2_1.zip

It requires OS X 10.7+ and a 64-bit processor.

## Changelog

### 2.5.0
* Adds HaobtcCNY

### 2.4.0
* Adds China Stock market

### 2.3.0
* Adds btc38 XRP/BTS

### 2.2.1

* Fix bug where icon disappears on error

### 2.2.0

* Adds BitFinexUSD, WinkDexUSD, HuobiCNY and OKCoinCNY
* New status bar icon with Yosemite (dark theme) support

### 2.1.4

* Removes MtGox
Expand Down Expand Up @@ -76,4 +94,4 @@ The source is provided for inspection, considering the nature of Bitcoin. You ar

If for some reason you feel like donating a few micro btc to future development, those should go here:

`1AmsBDouePjXxe2R2kFwbuCdBSpsxwtrUt`
`1D3NtjVFpoXonqk3MZwsYD9iV5WA7MRXUj`
80 changes: 60 additions & 20 deletions btcbar.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,41 @@
objects = {

/* Begin PBXBuildFile section */
4A2F00551BCF40EA0069E7DC /* HaobtcCNYFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A2F00531BCF40EA0069E7DC /* HaobtcCNYFetcher.m */; settings = {ASSET_TAGS = (); }; };
4A5F94F01B0C54A00077BEBF /* BitFinexUSDFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A5F94EB1B0C54A00077BEBF /* BitFinexUSDFetcher.m */; };
4A5F94F11B0C54A00077BEBF /* HuobiCNYFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A5F94ED1B0C54A00077BEBF /* HuobiCNYFetcher.m */; };
4A5F94F21B0C54A00077BEBF /* WinkDexUSDFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A5F94EF1B0C54A00077BEBF /* WinkDexUSDFetcher.m */; };
4A5F94F51B0C56DA0077BEBF /* OKCoinCNYFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A5F94F31B0C56DA0077BEBF /* OKCoinCNYFetcher.m */; };
4AEFB3E11AE0C48D00D6BE3A /* AstockFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AEFB3DC1AE0C48D00D6BE3A /* AstockFetcher.m */; };
4AEFB3E21AE0C48D00D6BE3A /* Btc38.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AEFB3DE1AE0C48D00D6BE3A /* Btc38.m */; };
830CE091171B6C3E00DDD525 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 830CE090171B6C3E00DDD525 /* Cocoa.framework */; };
830CE09B171B6C3E00DDD525 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 830CE099171B6C3E00DDD525 /* InfoPlist.strings */; };
830CE09D171B6C3E00DDD525 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 830CE09C171B6C3E00DDD525 /* main.m */; };
830CE0A4171B6C3E00DDD525 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 830CE0A3171B6C3E00DDD525 /* AppDelegate.m */; };
838F835018602990007A7AAE /* btclogoDim.png in Resources */ = {isa = PBXBuildFile; fileRef = 838F834E18602990007A7AAE /* btclogoDim.png */; };
838F835118602990007A7AAE /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = 838F834F18602990007A7AAE /* [email protected] */; };
83C3E7491859700100FA2921 /* BitStampUSDFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 83C3E7421859700100FA2921 /* BitStampUSDFetcher.m */; };
83C3E74A1859700100FA2921 /* BTCeUSDFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 83C3E7441859700100FA2921 /* BTCeUSDFetcher.m */; };
83C3E74B1859700100FA2921 /* CoinbaseUSDFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 83C3E7461859700100FA2921 /* CoinbaseUSDFetcher.m */; };
83C3E74F1859702000FA2921 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 83C3E74E1859702000FA2921 /* MainMenu.xib */; };
83C3E7541859702D00FA2921 /* btclogo.png in Resources */ = {isa = PBXBuildFile; fileRef = 83C3E7501859702D00FA2921 /* btclogo.png */; };
83C3E7551859702D00FA2921 /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = 83C3E7511859702D00FA2921 /* [email protected] */; };
83C3E7561859702D00FA2921 /* btclogoAlternate.png in Resources */ = {isa = PBXBuildFile; fileRef = 83C3E7521859702D00FA2921 /* btclogoAlternate.png */; };
83C3E7571859702D00FA2921 /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = 83C3E7531859702D00FA2921 /* [email protected] */; };
83C3E759185970C800FA2921 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 83C3E758185970C800FA2921 /* Icon.icns */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
4A2F00531BCF40EA0069E7DC /* HaobtcCNYFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HaobtcCNYFetcher.m; path = Fetchers/HaobtcCNYFetcher.m; sourceTree = "<group>"; };
4A2F00561BCF41500069E7DC /* HaobtcCNYFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HaobtcCNYFetcher.h; path = Fetchers/HaobtcCNYFetcher.h; sourceTree = "<group>"; };
4A5F94EA1B0C54A00077BEBF /* BitFinexUSDFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BitFinexUSDFetcher.h; path = Fetchers/BitFinexUSDFetcher.h; sourceTree = "<group>"; };
4A5F94EB1B0C54A00077BEBF /* BitFinexUSDFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BitFinexUSDFetcher.m; path = Fetchers/BitFinexUSDFetcher.m; sourceTree = "<group>"; };
4A5F94EC1B0C54A00077BEBF /* HuobiCNYFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HuobiCNYFetcher.h; path = Fetchers/HuobiCNYFetcher.h; sourceTree = "<group>"; };
4A5F94ED1B0C54A00077BEBF /* HuobiCNYFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HuobiCNYFetcher.m; path = Fetchers/HuobiCNYFetcher.m; sourceTree = "<group>"; };
4A5F94EE1B0C54A00077BEBF /* WinkDexUSDFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WinkDexUSDFetcher.h; path = Fetchers/WinkDexUSDFetcher.h; sourceTree = "<group>"; };
4A5F94EF1B0C54A00077BEBF /* WinkDexUSDFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WinkDexUSDFetcher.m; path = Fetchers/WinkDexUSDFetcher.m; sourceTree = "<group>"; };
4A5F94F31B0C56DA0077BEBF /* OKCoinCNYFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OKCoinCNYFetcher.m; path = Fetchers/OKCoinCNYFetcher.m; sourceTree = "<group>"; };
4A5F94F41B0C56DA0077BEBF /* OKCoinCNYFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OKCoinCNYFetcher.h; path = Fetchers/OKCoinCNYFetcher.h; sourceTree = "<group>"; };
4AEFB3DA1AE0ADA800D6BE3A /* btcbar.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = btcbar.entitlements; sourceTree = "<group>"; };
4AEFB3DB1AE0C48D00D6BE3A /* AstockFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AstockFetcher.h; path = Fetchers/AstockFetcher.h; sourceTree = "<group>"; };
4AEFB3DC1AE0C48D00D6BE3A /* AstockFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AstockFetcher.m; path = Fetchers/AstockFetcher.m; sourceTree = "<group>"; };
4AEFB3DD1AE0C48D00D6BE3A /* Btc38.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Btc38.h; path = Fetchers/Btc38.h; sourceTree = "<group>"; };
4AEFB3DE1AE0C48D00D6BE3A /* Btc38.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Btc38.m; path = Fetchers/Btc38.m; sourceTree = "<group>"; };
830CE08D171B6C3E00DDD525 /* btcbar.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = btcbar.app; sourceTree = BUILT_PRODUCTS_DIR; };
830CE090171B6C3E00DDD525 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
830CE093171B6C3E00DDD525 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
Expand All @@ -38,8 +55,6 @@
830CE0A3171B6C3E00DDD525 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
830CE0AE171B6C3F00DDD525 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
838F4296182E2F6E00B4FC58 /* Fetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Fetcher.h; sourceTree = "<group>"; };
838F834E18602990007A7AAE /* btclogoDim.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = btclogoDim.png; path = Icons/btclogoDim.png; sourceTree = "<group>"; };
838F834F18602990007A7AAE /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "[email protected]"; path = "Icons/[email protected]"; sourceTree = "<group>"; };
83C3E7411859700100FA2921 /* BitStampUSDFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BitStampUSDFetcher.h; path = Fetchers/BitStampUSDFetcher.h; sourceTree = "<group>"; };
83C3E7421859700100FA2921 /* BitStampUSDFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BitStampUSDFetcher.m; path = Fetchers/BitStampUSDFetcher.m; sourceTree = "<group>"; };
83C3E7431859700100FA2921 /* BTCeUSDFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BTCeUSDFetcher.h; path = Fetchers/BTCeUSDFetcher.h; sourceTree = "<group>"; };
Expand All @@ -48,9 +63,6 @@
83C3E7461859700100FA2921 /* CoinbaseUSDFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CoinbaseUSDFetcher.m; path = Fetchers/CoinbaseUSDFetcher.m; sourceTree = "<group>"; };
83C3E74E1859702000FA2921 /* MainMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = MainMenu.xib; path = Views/MainMenu.xib; sourceTree = "<group>"; };
83C3E7501859702D00FA2921 /* btclogo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = btclogo.png; path = Icons/btclogo.png; sourceTree = "<group>"; };
83C3E7511859702D00FA2921 /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "[email protected]"; path = "Icons/[email protected]"; sourceTree = "<group>"; };
83C3E7521859702D00FA2921 /* btclogoAlternate.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = btclogoAlternate.png; path = Icons/btclogoAlternate.png; sourceTree = "<group>"; };
83C3E7531859702D00FA2921 /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "[email protected]"; path = "Icons/[email protected]"; sourceTree = "<group>"; };
83C3E758185970C800FA2921 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = Icon.icns; path = ../Resources/Icon.icns; sourceTree = "<group>"; };
/* End PBXFileReference section */

Expand Down Expand Up @@ -106,6 +118,7 @@
830CE096171B6C3E00DDD525 /* btcbar */ = {
isa = PBXGroup;
children = (
4AEFB3DA1AE0ADA800D6BE3A /* btcbar.entitlements */,
830CE0A2171B6C3E00DDD525 /* AppDelegate.h */,
830CE0A3171B6C3E00DDD525 /* AppDelegate.m */,
838F4296182E2F6E00B4FC58 /* Fetcher.h */,
Expand Down Expand Up @@ -133,24 +146,33 @@
children = (
83C3E758185970C800FA2921 /* Icon.icns */,
83C3E7501859702D00FA2921 /* btclogo.png */,
83C3E7511859702D00FA2921 /* [email protected] */,
83C3E7521859702D00FA2921 /* btclogoAlternate.png */,
83C3E7531859702D00FA2921 /* [email protected] */,
838F834E18602990007A7AAE /* btclogoDim.png */,
838F834F18602990007A7AAE /* [email protected] */,
);
name = Icons;
sourceTree = "<group>";
};
838F4297182E5A5000B4FC58 /* Fetchers */ = {
isa = PBXGroup;
children = (
4A2F00531BCF40EA0069E7DC /* HaobtcCNYFetcher.m */,
4A2F00561BCF41500069E7DC /* HaobtcCNYFetcher.h */,
4A5F94F31B0C56DA0077BEBF /* OKCoinCNYFetcher.m */,
4A5F94F41B0C56DA0077BEBF /* OKCoinCNYFetcher.h */,
4A5F94EA1B0C54A00077BEBF /* BitFinexUSDFetcher.h */,
4A5F94EB1B0C54A00077BEBF /* BitFinexUSDFetcher.m */,
4A5F94EC1B0C54A00077BEBF /* HuobiCNYFetcher.h */,
4A5F94ED1B0C54A00077BEBF /* HuobiCNYFetcher.m */,
4A5F94EE1B0C54A00077BEBF /* WinkDexUSDFetcher.h */,
4A5F94EF1B0C54A00077BEBF /* WinkDexUSDFetcher.m */,
83C3E7411859700100FA2921 /* BitStampUSDFetcher.h */,
83C3E7421859700100FA2921 /* BitStampUSDFetcher.m */,
83C3E7431859700100FA2921 /* BTCeUSDFetcher.h */,
83C3E7441859700100FA2921 /* BTCeUSDFetcher.m */,
83C3E7451859700100FA2921 /* CoinbaseUSDFetcher.h */,
83C3E7461859700100FA2921 /* CoinbaseUSDFetcher.m */,
4AEFB3DB1AE0C48D00D6BE3A /* AstockFetcher.h */,
4AEFB3DC1AE0C48D00D6BE3A /* AstockFetcher.m */,
4AEFB3DD1AE0C48D00D6BE3A /* Btc38.h */,
4AEFB3DE1AE0C48D00D6BE3A /* Btc38.m */,
);
name = Fetchers;
sourceTree = "<group>";
Expand Down Expand Up @@ -191,6 +213,16 @@
attributes = {
LastUpgradeCheck = 0500;
ORGANIZATIONNAME = nearengine;
TargetAttributes = {
830CE08C171B6C3E00DDD525 = {
DevelopmentTeam = E9EW4P4JNL;
SystemCapabilities = {
com.apple.Sandbox = {
enabled = 1;
};
};
};
};
};
buildConfigurationList = 830CE088171B6C3E00DDD525 /* Build configuration list for PBXProject "btcbar" */;
compatibilityVersion = "Xcode 3.2";
Expand All @@ -215,13 +247,8 @@
buildActionMask = 2147483647;
files = (
83C3E7541859702D00FA2921 /* btclogo.png in Resources */,
83C3E7561859702D00FA2921 /* btclogoAlternate.png in Resources */,
838F835118602990007A7AAE /* [email protected] in Resources */,
830CE09B171B6C3E00DDD525 /* InfoPlist.strings in Resources */,
83C3E7571859702D00FA2921 /* [email protected] in Resources */,
83C3E759185970C800FA2921 /* Icon.icns in Resources */,
838F835018602990007A7AAE /* btclogoDim.png in Resources */,
83C3E7551859702D00FA2921 /* [email protected] in Resources */,
83C3E74F1859702000FA2921 /* MainMenu.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -233,10 +260,17 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4AEFB3E11AE0C48D00D6BE3A /* AstockFetcher.m in Sources */,
4AEFB3E21AE0C48D00D6BE3A /* Btc38.m in Sources */,
83C3E7491859700100FA2921 /* BitStampUSDFetcher.m in Sources */,
4A5F94F11B0C54A00077BEBF /* HuobiCNYFetcher.m in Sources */,
4A5F94F01B0C54A00077BEBF /* BitFinexUSDFetcher.m in Sources */,
830CE09D171B6C3E00DDD525 /* main.m in Sources */,
83C3E74B1859700100FA2921 /* CoinbaseUSDFetcher.m in Sources */,
4A5F94F51B0C56DA0077BEBF /* OKCoinCNYFetcher.m in Sources */,
83C3E74A1859700100FA2921 /* BTCeUSDFetcher.m in Sources */,
4A2F00551BCF40EA0069E7DC /* HaobtcCNYFetcher.m in Sources */,
4A5F94F21B0C54A00077BEBF /* WinkDexUSDFetcher.m in Sources */,
830CE0A4171B6C3E00DDD525 /* AppDelegate.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down Expand Up @@ -315,11 +349,14 @@
830CE0BF171B6C3F00DDD525 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = btcbar/btcbar.entitlements;
CODE_SIGN_IDENTITY = "Mac Developer";
COMBINE_HIDPI_IMAGES = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "btcbar/btcbar-Prefix.pch";
INFOPLIST_FILE = "btcbar/btcbar-Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.7;
PRODUCT_BUNDLE_IDENTIFIER = com.philsong.btcbar;
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
Expand All @@ -328,11 +365,14 @@
830CE0C0171B6C3F00DDD525 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = btcbar/btcbar.entitlements;
CODE_SIGN_IDENTITY = "Mac Developer";
COMBINE_HIDPI_IMAGES = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "btcbar/btcbar-Prefix.pch";
INFOPLIST_FILE = "btcbar/btcbar-Info.plist";
MACOSX_DEPLOYMENT_TARGET = 10.7;
PRODUCT_BUNDLE_IDENTIFIER = com.philsong.btcbar;
PRODUCT_NAME = "$(TARGET_NAME)";
WRAPPER_EXTENSION = app;
};
Expand Down
10 changes: 9 additions & 1 deletion btcbar/AppDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,21 @@
#import "BitStampUSDFetcher.h"
#import "CoinbaseUSDFetcher.h"
#import "BTCeUSDFetcher.h"
#import "BitFinexUSDFetcher.h"
#import "WinkDexUSDFetcher.h"
#import "OKCoinCNYFetcher.h"
#import "HuobiCNYFetcher.h"
#import "Btc38.h"
#import "AstockFetcher.h"
#import "HaobtcCNYFetcher.h"

@interface AppDelegate : NSObject <NSApplicationDelegate> {
NSMenu *btcbarMainMenu;
NSInteger currentFetcherTag;

NSStatusItem *btcbarStatusItem;

NSTimer *updateViewTimer;
// NSTimer *updateViewTimer;
NSTimer *updateDataTimer;

NSMutableArray *tickers;
Expand All @@ -24,6 +31,7 @@

- (void)menuActionSetTicker:(id)sender;
- (void)menuActionBrowser:(id)sender;
- (void)menuActionAbout:(id)sender;
- (void)menuActionQuit:(id)sender;

- (void)handleTickerNotification:(NSNotification *)pNotification;
Expand Down
Loading

0 comments on commit 54b7dc8

Please sign in to comment.