1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-09-07 20:50:53 +02:00

Compare commits

...

2027 Commits
0.6.0 ... kiva

Author SHA1 Message Date
Jeff Mitchell
648b831242 Move things around to a more logical layout 2014-04-04 11:14:59 -04:00
Jeff Mitchell
794dced277 Actually set the authorization header 2014-04-04 10:53:59 -04:00
Jeff Mitchell
b0234f28d5 Pull a bunch of code out of HatchetAccount and into HatchetHelpers; make some things more modular; prepare for the Kiva/Dreamcatcher split 2014-04-03 10:00:28 -04:00
Tomahawk CI
b5a56ed149 Automatic merge of Transifex translations 2014-04-03 02:17:19 +02:00
Dominik Schmidt
f12f639206 Merge pull request #224 from TheOneRing/qt5-win
Some qt5 fixes for Windows
2014-04-02 22:20:22 +02:00
Jeff Mitchell
ca6adf7922 Silence warning 2014-04-02 12:53:01 -04:00
Uwe L. Korn
70a17eafcf Use Q_ASSERT_X to print error message 2014-04-01 18:16:57 +01:00
Patrick von Reth
6630de66fe fixed WITH_QTSPARKLE option 2014-03-31 18:06:32 +02:00
Patrick von Reth
9556c1693f use append 2014-03-31 18:00:29 +02:00
Patrick von Reth
cbb8b44177 fixed another HWND cast 2014-03-31 17:45:27 +02:00
Patrick von Reth
8573d8fb42 Some qt5 fixes for Windows 2014-03-31 17:45:26 +02:00
Teo Mrnjavac
fb02c08a55 Merge pull request #225 from TheOneRing/Q_WS_WIN_to_Q_OS_WIN
replaced Q_WS_WIN with Q_OS_WIN
2014-03-31 17:32:30 +02:00
Patrick von Reth
910c17ade9 replaced Q_WS_WIN with Q_OS_WIN 2014-03-31 17:30:54 +02:00
Tomahawk CI
1055e416f8 Automatic merge of Transifex translations 2014-03-31 02:17:20 +02:00
Jeff Mitchell
028470aa22 Fix warnings and potential issues caused by incorrect header guard 2014-03-28 21:53:21 -04:00
Jeff Mitchell
0f4b12f156 Remove some old cruft and start getting things ready for Kiva 2014-03-27 13:55:25 -04:00
Tomahawk CI
9617ef84fe Automatic merge of Transifex translations 2014-03-27 01:16:53 +01:00
Uwe L. Korn
70085e97f5 Remove unused cryptojs-sha1.js 2014-03-26 22:00:17 +00:00
Leo Franchi
ded7684227 Include qjson headers in playdarapi compilation 2014-03-25 19:15:31 -04:00
Teo Mrnjavac
cf075a6d1a Merge pull request #223 from krf/arm-fixes
Compile fix for ARM
2014-03-25 16:22:08 +01:00
Kevin Funk
ba53961f1b Compile fix for ARM 2014-03-25 16:14:23 +01:00
Tomahawk CI
ee50eccc14 Automatic merge of Transifex translations 2014-03-21 01:16:49 +01:00
Uwe L. Korn
c2961edc12 Make TAGLIB #if checks backwards compatible 2014-03-20 19:37:57 +00:00
Uwe L. Korn
98656205df Link to KF5::Attica with Qt5
* There is no CMake varibale for libattica's libs anymore.
2014-03-20 19:30:26 +00:00
Uwe L. Korn
a03bbfc891 Fix qt5keychain includes 2014-03-20 19:25:31 +00:00
Christian Muehlhaeuser
15cb87048a Merge pull request #221 from tomahawk-player/hatchet-qt5-qurl
Handle QUrls in Hatchet unified for Qt4+5
2014-03-15 01:24:57 +01:00
Uwe L. Korn
b96ebfc2ba Make QUrl command compatibale with Qt5 2014-03-14 12:04:46 +00:00
Uwe L. Korn
f5de7e0a3f Add method to get encodedQuery independent of Qt version 2014-03-14 12:04:46 +00:00
Jeff Mitchell
8c414d7588 Adapt to new logging behavior of websocketpp 2014-03-14 07:29:26 -04:00
Tomahawk CI
c912b76c49 Automatic merge of Transifex translations 2014-03-14 01:16:41 +01:00
Teo Mrnjavac
039490966a Merge pull request #222 from shadeslayer/master
Fix path detection for plugin
2014-03-13 19:31:31 +01:00
Rohan Garg
b80e9b1dd3 Fix path detection for plugins 2014-03-13 19:23:24 +01:00
Uwe L. Korn
043867413f Add urlTranslator and always pass result AND url to all handlers/factories 2014-03-13 12:53:14 +00:00
Uwe L. Korn
596794da57 Move IOFactories out of Servent 2014-03-13 02:15:13 +00:00
Uwe L. Korn
f773653c3f Show correct method in asyncRequest 2014-03-12 22:58:30 +00:00
Dominik Schmidt
1ae88f6e04 Don't export non-library classes 2014-03-12 19:21:15 +01:00
Jeff Mitchell
6b0a8039a5 Force websocketpp to use no threading 2014-03-12 14:17:51 -04:00
Uwe L. Korn
b6bad91427 Add rtmp support to ChangeLog 2014-03-09 11:09:28 +01:00
Uwe L. Korn
dbef9071eb Add Opus support
* requires TagLib 1.9
2014-03-09 10:06:15 +00:00
Tomahawk CI
3e53fa3f26 Automatic merge of Transifex translations 2014-03-09 01:16:43 +01:00
Uwe L. Korn
8ca2c24597 Whitelist rtmp:// to passed as plain URL to Phonon 2014-03-08 01:44:07 +00:00
Tomahawk CI
faec1b6f03 Automatic merge of Transifex translations 2014-03-08 01:16:43 +01:00
Uwe L. Korn
bd8ae956d5 Add method to return the current volume 2014-03-07 14:08:50 +00:00
Tomahawk CI
6579007791 Automatic merge of Transifex translations 2014-03-07 01:16:42 +01:00
Tomahawk CI
4a4fc6d242 Automatic merge of Transifex translations 2014-03-06 01:16:45 +01:00
Uwe L. Korn
375f9f90d8 Initialise QCA before QCoreApplication
* Fixes segfaults with QCA head on randomInt()
2014-03-05 17:26:43 +00:00
Jeff Mitchell
73f4747028 Fix up nonce expectations 2014-03-01 08:39:15 -05:00
Jeff Mitchell
ae9fd7bb0f Comment out pubkey bits 2014-03-01 08:34:42 -05:00
Jeff Mitchell
f931c1d9a8 Remove nonce bits for now 2014-03-01 08:27:52 -05:00
Uwe L. Korn
6954e942f8 TELEPATHY_QT*_FOUND depends on Qt version 2014-02-26 10:44:27 +00:00
Dominik Schmidt
a686d1f1d3 Updated mingw32-libssl on build host 2014-02-26 01:31:36 +01:00
Tomahawk CI
69cbb0e2d3 Automatic merge of Transifex translations 2014-02-23 01:16:14 +01:00
Tomahawk CI
36e6c4e0b2 Automatic merge of Transifex translations 2014-02-22 01:16:16 +01:00
Tomahawk CI
51efe75e0c Automatic merge of Transifex translations 2014-02-20 01:16:13 +01:00
Uwe L. Korn
3a9bdf1a1d MPRIS and AudioEngine are in different threads 2014-02-15 23:22:11 +00:00
Stefan Derkits
085ad8ee92 typo in EchonestGenerator 2014-02-14 20:55:45 +01:00
Stefan Derkits
8fa093a2e3 bump echonest dependency, update README 2014-02-14 19:54:13 +01:00
Uwe L. Korn
e17b0f88a9 Return valid JSON response in the API 2014-02-10 23:50:43 +00:00
Tomahawk CI
2a1963a701 Automatic merge of Transifex translations 2014-02-08 01:16:15 +01:00
Tomahawk CI
b1497b4ddd Automatic merge of Transifex translations 2014-02-07 01:16:16 +01:00
Tomahawk CI
053c4bf1a5 Automatic merge of Transifex translations 2014-02-06 01:16:17 +01:00
Tomahawk CI
8b3330bb21 Automatic merge of Transifex translations 2014-02-05 01:16:18 +01:00
Tomahawk CI
359fa5befc Automatic merge of Transifex translations 2014-02-04 01:16:15 +01:00
Tomahawk CI
2f0c0640e8 Automatic merge of Transifex translations 2014-02-03 01:16:19 +01:00
Tomahawk CI
99a27841de Automatic merge of Transifex translations 2014-02-02 01:16:17 +01:00
Tomahawk CI
23c4ea867f Automatic merge of Transifex translations 2014-02-01 01:16:10 +01:00
Uwe L. Korn
f0e7a8bd41 Add remote control API to ChangeLog 2014-02-01 00:49:08 +01:00
Uwe L. Korn
3b1728db5f Add setting to let playdar/remote api listen on all IPs 2014-01-31 23:46:34 +00:00
Uwe L. Korn
237ea85369 Add a very basic remote control page 2014-01-31 20:36:16 +00:00
Uwe L. Korn
80a59ad4be Fix now (not) playing JSON 2014-01-31 20:36:04 +00:00
Uwe L. Korn
36206e8006 Fix indentation 2014-01-31 19:52:57 +00:00
Uwe L. Korn
efbc9a27f9 Add now playing api call 2014-01-31 19:49:26 +00:00
Uwe L. Korn
487e78fffd Only clear currentPeerInfo *after* auth 2014-01-31 19:25:42 +00:00
Uwe L. Korn
dad902523e Fix Wreorder warning 2014-01-31 19:16:23 +00:00
Uwe L. Korn
798b83cbe5 Expot dbid to JSResolvers 2014-01-31 02:46:22 +00:00
Tomahawk CI
07be65b09f Automatic merge of Transifex translations 2014-01-31 01:16:39 +01:00
Uwe L. Korn
f67ce789f2 Less races in Servent::controlConnections 2014-01-30 23:26:24 +00:00
Uwe L. Korn
19434a492c Add debug output to diagnose authFailed crashes. 2014-01-30 22:58:28 +00:00
Uwe L. Korn
0f175bcc37 Merge pull request #220 from tomahawk-player/webapi-1.5
Add basic remote control API
2014-01-29 02:51:58 -08:00
Uwe L. Korn
e609c83fb1 Add Access-Control-Allow-Origin header 2014-01-28 23:27:08 +00:00
Uwe L. Korn
b385722d31 Add remote controlling of playback 2014-01-28 22:40:48 +00:00
Uwe L. Korn
fb86d72c41 Add sendJsonOk 2014-01-28 22:40:02 +00:00
Uwe L. Korn
c87f0c47cd Add sendJsonError 2014-01-28 22:39:53 +00:00
Uwe L. Korn
fcc857a734 Allow multiple arguments in API 1.5 call 2014-01-28 22:39:27 +00:00
Uwe L. Korn
062a09ccd7 Add (web) API 1.5 skeleton 2014-01-28 21:38:00 +00:00
Tomahawk CI
7569dec069 Automatic merge of Transifex translations 2014-01-28 01:16:15 +01:00
Uwe L. Korn
863462cce0 Only reconnect if we have any retries left. 2014-01-27 14:53:37 +00:00
Tomahawk CI
d91fb818fd Automatic merge of Transifex translations 2014-01-27 01:16:14 +01:00
Uwe L. Korn
1168bae192 Remove hardcoded rdio UrlLookup 2014-01-26 15:52:37 +00:00
Uwe L. Korn
282b01092c Send POST body on asyncRequest 2014-01-26 15:52:36 +00:00
Uwe L. Korn
dce99fef75 Update loading of CryptoJS 2014-01-26 15:52:36 +00:00
Uwe L. Korn
781f773e1d Add whole CryptoJS instead of only one part. 2014-01-26 15:52:36 +00:00
Christian Muehlhaeuser
f7b75bbf25 * Twitter plugin is no more. 2014-01-25 02:04:22 +01:00
Christian Muehlhaeuser
10e08a804c * Attempt to fix more VLC plugins. 2014-01-25 02:03:11 +01:00
Christian Muehlhaeuser
bdb77b054c * Attempt to fix VLC plugins. 2014-01-25 02:00:31 +01:00
Christian Muehlhaeuser
ce6718ccb1 * Updated macdeploy. 2014-01-25 01:15:00 +01:00
Tomahawk CI
acfbfd384f Automatic merge of Transifex translations 2014-01-21 01:15:20 +01:00
Teo Mrnjavac
5d77da374d Remove unused biography widget from AlbumInfoWidget 2014-01-20 17:51:33 +01:00
Teo Mrnjavac
1a78864cac Use ScrollingLabel in the other info widgets as well 2014-01-20 15:39:55 +01:00
Teo Mrnjavac
a4e5f9ea71 Proper spacing in ColumnViewPreviewWidget 2014-01-20 14:44:54 +01:00
Teo Mrnjavac
9b66999263 Actually take advantage of ScrollingLabel in TrackInfoWidget 2014-01-20 14:44:54 +01:00
Teo Mrnjavac
525806f77a Use QLabel's indent in ScrollingLabel 2014-01-20 14:44:54 +01:00
Teo Mrnjavac
34e1435b48 Make ScrollingLabel an actual label, respect alignment, and use in TrackInfoWidget. 2014-01-20 14:44:54 +01:00
Tomahawk CI
2e34d64218 Automatic merge of Transifex translations 2014-01-18 01:15:18 +01:00
Uwe L. Korn
e04c46288c Revert "Probably make compile on Qt5"
This reverts commit 103b90c62c.
2014-01-17 19:37:30 +00:00
Teo Mrnjavac
103b90c62c Probably make compile on Qt5 2014-01-17 20:10:37 +01:00
Uwe L. Korn
8a48ef0c41 Use KF5Attica instead of LibAttica for Qt5 2014-01-17 19:02:52 +00:00
Teo Mrnjavac
9139708980 Provide a splash screen without transparency if there's no compositing. 2014-01-17 18:50:14 +01:00
Teo Mrnjavac
d8aa1d85d2 Fix build 2014-01-17 18:44:24 +01:00
Jason Herskowitz
c70949f7de Add a backup splash screen without unrounded corners if we detect there's no compositing 2014-01-17 12:39:04 -05:00
Teo Mrnjavac
0417b446ef Draw info pixmap in the cover position on hover in TreeItemDelegate 2014-01-17 17:24:01 +01:00
Tomahawk CI
d46670167e Automatic merge of Transifex translations 2014-01-17 01:16:28 +01:00
Jeff Mitchell
1e178ec5bc Update Hatchet account type to current protocol workflow. 2014-01-16 17:59:26 -05:00
Teo Mrnjavac
37ec3466ab Moved SocialWidget to src/tomahawk/widgets 2014-01-16 18:14:44 +01:00
Teo Mrnjavac
09c4d71382 Moved a bunch of dialogs to src/tomahawk/dialogs 2014-01-16 18:02:43 +01:00
Teo Mrnjavac
a2a67ae1cf Moved static port forward settings to separate dialog. 2014-01-16 17:42:30 +01:00
Teo Mrnjavac
b05c043374 Revert failed OSX focus fix attempt. Much shame. Perform Seppuku. 2014-01-16 16:01:41 +01:00
Teo Mrnjavac
1fae5eddda Second attempt to fix OSX SettingsDialog focus. 2014-01-16 15:41:43 +01:00
Teo Mrnjavac
7993934a69 Comment. 2014-01-16 11:04:57 +01:00
Teo Mrnjavac
47f00b4a30 Try to fix the OSX SettingsDialog focus issue. 2014-01-16 10:29:43 +01:00
Tomahawk CI
07e8e356c3 Automatic merge of Transifex translations 2014-01-16 01:15:21 +01:00
Teo Mrnjavac
2d5ae48524 Proper splash screen support for database schema upgrade. 2014-01-15 17:12:59 +01:00
Teo Mrnjavac
fbed11a93d Added Splash widget support. 2014-01-15 16:00:51 +01:00
Tomahawk CI
bfcb60bd2a Automatic merge of Transifex translations 2014-01-14 01:15:18 +01:00
Teo Mrnjavac
d24807bd71 Properly manage additional questions in SourceTreePopupWidget. 2014-01-13 18:54:23 +01:00
Teo Mrnjavac
f81cf2c517 Paint the artist gray in Short-style TrackViews. 2014-01-13 15:37:51 +01:00
Tomahawk CI
1ed7c8c962 Automatic merge of Transifex translations 2014-01-11 01:15:18 +01:00
Teo Mrnjavac
4890f69329 Remember FlexibleTreeView mode choice for all Collection views. 2014-01-10 17:47:02 +01:00
Tomahawk CI
354c2d5bfb Automatic merge of Transifex translations 2014-01-10 01:15:17 +01:00
Teo Mrnjavac
cb15b6cf01 Fix non-Windows build. 2014-01-09 18:20:32 +01:00
Teo Mrnjavac
abdf5ba1ac Fix scrolling the ColumnView to the PreviewWidget on first try. 2014-01-09 18:02:29 +01:00
Teo Mrnjavac
adcca37376 And don't stretch it either more than necessary. 2014-01-09 18:02:29 +01:00
Teo Mrnjavac
c7318649f3 Do not elide artist name when there's enough space. 2014-01-09 18:02:29 +01:00
Teo Mrnjavac
6a6a911c1d Merge pull request #219 from TheOneRing/no-thumb-test
No thumb test
2014-01-09 01:35:24 -08:00
Patrick von Reth
6a1c629899 fixed aditional #endif 2014-01-09 10:10:46 +01:00
Patrick von Reth
2df438d498 removed broken test for THUMBBUTTON, as this would only be an issue on very old mingw versions 2014-01-09 10:01:28 +01:00
Tomahawk CI
f171baff6a Automatic merge of Transifex translations 2014-01-09 01:15:21 +01:00
Teo Mrnjavac
53dd0848a6 Don't stretch the artist label too much. 2014-01-08 18:01:37 +01:00
Teo Mrnjavac
c86b5ab74e Added a ScrollingLabel that scrolls on hover when the text doesn't fit. 2014-01-08 18:01:37 +01:00
Teo Mrnjavac
3299dc14d6 Use DpiScaler for a fixed column width. 2014-01-08 18:01:37 +01:00
Teo Mrnjavac
903bd0ee4b Unnecessary inline is unnecessary. 2014-01-08 18:01:37 +01:00
Teo Mrnjavac
b4ad00fe2c Unnecessary hack is unnecessary. 2014-01-08 18:01:36 +01:00
Tomahawk CI
7b854ee009 Automatic merge of Transifex translations 2014-01-03 01:15:21 +01:00
Teo Mrnjavac
0e6cda9b83 Fix ColumnViewPreviewWidget minimum height on Mac. 2014-01-02 15:03:39 +01:00
Teo Mrnjavac
82605afb5e What happens if we never scroll the ColumnViewPreviewWidget? 2014-01-02 14:08:41 +01:00
Teo Mrnjavac
8bbc7ce607 Fix build on Mac. 2014-01-02 13:05:25 +01:00
Teo Mrnjavac
42a298f7e0 Show Artist page from ColumnViewPreviewWidget. 2014-01-02 12:47:11 +01:00
Teo Mrnjavac
a7947a7fcf Remake ColumnViewPreviewWidget without uic. 2014-01-02 12:35:03 +01:00
Teo Mrnjavac
a10401230d Fixed enqueuing of urls without metadata. 2013-12-20 09:27:19 +01:00
Teo Mrnjavac
6832d3c952 Fix XSPF loading breakage.
Incoming result hints are now passed through ResultUrlChecker.
2013-12-20 08:57:44 +01:00
Teo Mrnjavac
c18d8568c7 If a tomahawk link has a xspf, be sure to load it from GAM. 2013-12-19 17:39:57 +01:00
Teo Mrnjavac
60d6ec3789 Add support for tomahawk://love links. 2013-12-19 13:26:49 +01:00
Teo Mrnjavac
3bbcefe56e Correct emptyTip for collection views. 2013-12-17 16:59:12 +01:00
Teo Mrnjavac
9a6b74a749 Disable QtKeychain on OSX. 2013-12-12 17:51:10 +01:00
Jeff Mitchell
1adefb3e5d Fix some mandella API changes 2013-12-10 16:06:00 -05:00
Teo Mrnjavac
aff4e329c1 Make compile 2013-12-09 17:11:08 +01:00
Tomahawk CI
c1f11b4816 Automatic merge of Transifex translations 2013-12-07 01:15:21 +01:00
Teo Mrnjavac
d393b68516 Good guy CI made me realize we probably don't want scaling on OSX anyway. 2013-12-06 20:11:50 +01:00
Teo Mrnjavac
7c13aeca6d Fix column view preview widget on high DPI and/or big system font sizes. 2013-12-06 19:31:05 +01:00
Christian Muehlhaeuser
da85993000 Merge pull request #218 from TheOneRing/fix-thumb-test
fix test for HAVE_THUMBBUTTON
2013-12-06 02:50:23 -08:00
Patrick von Reth
691676a2db fix test for HAVE_THUMBBUTTON 2013-12-05 20:28:38 +01:00
Uwe L. Korn
ce92f2869b Use Qt5Keychain when building with Qt5 2013-12-04 19:11:38 +00:00
Teo Mrnjavac
8cc2c69e9c Fix include guard. 2013-12-04 15:01:11 +01:00
Tomahawk CI
3960736743 Automatic merge of Transifex translations 2013-11-18 01:15:20 +01:00
Teo Mrnjavac
c82dd55154 Always show QtKeychain error code. 2013-11-14 16:44:30 +01:00
Teo Mrnjavac
3c33191511 Unbump QtKeychain to 0.1.0 2013-10-23 16:59:00 +02:00
Teo Mrnjavac
9476a06f3d Don't crash when getting an invalid dbcmd. 2013-10-23 16:29:44 +02:00
Tomahawk CI
dda1ad8c77 Automatic merge of Transifex translations 2013-10-23 02:15:18 +02:00
Jeff Mitchell
0682b82199 Apparently cmake policies are not forward-compatible (facepalm) so only set them on versions that understand them 2013-10-22 11:16:15 -04:00
Jeff Mitchell
de1bb8ede7 Update for CMake policies 0022 and 0023 (0023 needs revisiting when we
can depend on 2.8.12).
2013-10-22 10:53:44 -04:00
Christian Muehlhaeuser
99d2199736 * Get rid of fugly state-queue handling in AudioEngine. 2013-10-22 10:46:58 +02:00
Tomahawk CI
bd3cce5658 Automatic merge of Transifex translations 2013-10-22 02:15:18 +02:00
Christian Muehlhaeuser
381f23013d * Whitelist more staticdata. 2013-10-21 17:13:50 +02:00
Christian Muehlhaeuser
a0b0d701c3 * Removed dupe auth logo. 2013-10-21 17:13:30 +02:00
Christian Muehlhaeuser
82f49bcbc0 * Cleaned up & fixed auth page html. 2013-10-21 17:13:09 +02:00
Jason Herskowitz
0bff3d027f Add ie9 shim and use local logo 2013-10-21 10:41:35 -04:00
Jason Herskowitz
28acdb0ee5 Style auth page 2013-10-21 10:34:02 -04:00
Christian Muehlhaeuser
f85c188298 *Api_v1 serves static files as requested when whitelisted. 2013-10-21 15:22:33 +02:00
Christian Muehlhaeuser
61ba1c979e * Renamed data/www/tomahawk_banner_small.png to tomahawk_auth_logo.png. 2013-10-21 15:22:33 +02:00
Jason Herskowitz
3484534123 Updated playdar auth page with new template - but will be broken until new site is live 2013-10-20 22:11:40 -04:00
Tomahawk CI
dec2ea849d Automatic merge of Transifex translations 2013-10-21 02:15:23 +02:00
Tomahawk CI
5acf857396 Automatic merge of Transifex translations 2013-10-20 02:15:19 +02:00
Teo Mrnjavac
849917cb00 Play with small text shade in PlaylistLargeItemDelegate 2013-10-19 15:29:03 +02:00
Tomahawk CI
437ea1fc5a Automatic merge of Transifex translations 2013-10-12 02:15:21 +02:00
Tomahawk CI
5cad41b377 Automatic merge of Transifex translations 2013-10-07 02:17:10 +02:00
Christian Muehlhaeuser
fd6f2940d3 * Use brighter color for artist names in PlaylistLargeItemDelegate. 2013-10-06 07:31:36 +02:00
Christian Muehlhaeuser
97e202a24e * Changed display order from 'Artist - Track' to 'Track - Artist' to be more consistent. 2013-10-06 07:09:38 +02:00
Christian Muehlhaeuser
327a9136fb * Fixed QueueView's context menu not working. 2013-10-06 05:31:19 +02:00
Tomahawk CI
4db6d33d16 Automatic merge of Transifex translations 2013-10-06 02:17:07 +02:00
Tomahawk CI
a70f64f4f5 Automatic merge of Transifex translations 2013-10-05 02:17:21 +02:00
Tomahawk CI
230ce3eca7 Automatic merge of Transifex translations 2013-10-01 02:17:12 +02:00
Teo Mrnjavac
a471c5c6e6 Added tooltips to avatars in delegate boxes 2013-09-30 13:00:11 +02:00
Tomahawk CI
d0d285fcbd Automatic merge of Transifex translations 2013-09-30 02:17:10 +02:00
Tomahawk CI
bac8824ed3 Automatic merge of Transifex translations 2013-09-29 02:17:21 +02:00
Jeff Mitchell
7aeda82761 sipPlugin() calls to most sips would automatically create if it did not already exist. But when shutting down and trying to disconnect a plugin, you don't want it constructing as you're shutting things down...it leads to crashes. Based on some of the code I looked at/touched, this will also fix a few places where sips were being connected when unexpected, like after changing some settings. 2013-09-28 15:49:46 -04:00
Tomahawk CI
921a8e445f Automatic merge of Transifex translations 2013-09-28 02:21:46 +02:00
Teo Mrnjavac
ab676a18ff Show times in Latest Additions view, and make Recently Played safer 2013-09-27 14:33:18 +02:00
Teo Mrnjavac
a0edbf1858 Don't require text to be set for GenericBox 2013-09-27 14:22:36 +02:00
Teo Mrnjavac
40ff72d9e2 More code deduplication between LoveBox and GenericBox 2013-09-27 14:10:18 +02:00
Teo Mrnjavac
bc7d39c172 Return type gets its own line 2013-09-27 12:55:53 +02:00
Teo Mrnjavac
7e598a5aba Redundant code is redundant. 2013-09-27 12:55:21 +02:00
Teo Mrnjavac
6242b1633f Added RecentBox for recently played tracks view. TODO: DRY 2013-09-27 11:08:23 +02:00
Tomahawk CI
cdea0550b2 Automatic merge of Transifex translations 2013-09-27 02:17:15 +02:00
Teo Mrnjavac
2ad402f3de Put text left of pixmaps in SentBox 2013-09-26 20:01:48 +02:00
Teo Mrnjavac
f539551068 Add SentBox (like LoveBox) to Inbox 2013-09-26 14:54:47 +02:00
Teo Mrnjavac
0bbbf624e8 More debug spam for Keychain. 2013-09-26 11:01:27 +02:00
Teo Mrnjavac
f1d9598e5e Obsolete include is obsolete. 2013-09-26 10:43:26 +02:00
Tomahawk CI
2fe351efc3 Automatic merge of Transifex translations 2013-09-24 02:17:18 +02:00
Teo Mrnjavac
7b7850bcb5 -_-' 2013-09-23 17:52:11 +02:00
Teo Mrnjavac
97692a1a13 Unbreak build. 2013-09-23 17:46:45 +02:00
Jeff Mitchell
02386935ad Revert/fix hatchet/websocket logging 2013-09-23 11:45:20 -04:00
Teo Mrnjavac
bc1ebfa89b Debug spam for OSX keychain. 2013-09-23 17:32:48 +02:00
Uwe L. Korn
2b53a5a212 Merge pull request #215 from arthurtiteica/master
Enabled the Romanian translation
2013-09-23 03:52:08 -07:00
Arthur Țițeică
2c064d38f3 Romanian translation - the desktop and the qrc files 2013-09-23 08:35:30 +03:00
Arthur Țițeică
de107a46e6 Enabled the Romanian translation 2013-09-23 08:00:27 +03:00
Tomahawk CI
ba846924a3 Automatic merge of Transifex translations 2013-09-23 02:17:09 +02:00
Tomahawk CI
88a6fb9000 Automatic merge of Transifex translations 2013-09-22 02:17:12 +02:00
Uwe L. Korn
16ffb4f1eb Add newer annotation name 2013-09-21 13:48:21 +02:00
Uwe L. Korn
3886adbda3 Do cmake-options the right way 2013-09-21 13:46:18 +02:00
Uwe L. Korn
342b06067c verbose WebSocket should only be verbose if we want verbose 2013-09-21 00:13:04 +02:00
Uwe L. Korn
a36672a3b1 Add missing metadata so that Hatchet is shown in the Diagnostics dialog 2013-09-21 00:12:45 +02:00
Uwe L. Korn
36c34a49ed Read full hatchet response before passing it to QJson 2013-09-20 15:57:10 +02:00
Uwe L. Korn
4ceb94fd8f Let Hatchet be bit more silent on non-verbose startup 2013-09-20 15:54:54 +02:00
Uwe L. Korn
abbc6eefc3 We have introduced a third valid state but did not add the check for it. 2013-09-18 19:31:21 +02:00
Uwe L. Korn
16c5bbee85 Don't log after final unloading has begun 2013-09-17 10:26:22 +02:00
Tomahawk CI
28fcb8561f Automatic merge of Transifex translations 2013-09-17 02:17:12 +02:00
Uwe L. Korn
361e960c0b Only handle https by ourselves, delay http until we have faster seeking 2013-09-16 23:35:17 +02:00
Uwe L. Korn
8f8736c965 Let Phonon delete QNR_IODeviceStream but do all QIODevices still by ourselves 2013-09-16 22:54:28 +02:00
Tomahawk CI
d99d12ad73 Automatic merge of Transifex translations 2013-09-15 02:17:12 +02:00
Tomahawk CI
20dd2984fd Automatic merge of Transifex translations 2013-09-14 02:17:13 +02:00
Teo Mrnjavac
d5231aeabe Yup, completely Tomahawk 2013-09-13 13:50:25 +02:00
Teo Mrnjavac
9a57492d61 Tomahawk is not Tomabawk nor Clementine 2013-09-13 13:48:11 +02:00
Teo Mrnjavac
0c41b46d0c Merge pull request #214 from tomahawk-player/osx-keychain-stop-nagging
Make OSX Keychain nag less
2013-09-12 13:15:58 -07:00
Teo Mrnjavac
0bf97130f6 Useless #ifdef is useless 2013-09-12 14:03:37 +02:00
Teo Mrnjavac
c0b0c9580e Add upgrade path for new OSX keychain storage 2013-09-12 13:24:39 +02:00
Teo Mrnjavac
eed056505f Actually write credentials data. 2013-09-12 12:07:05 +02:00
Tomahawk CI
a385530c6e Automatic merge of Transifex translations 2013-09-12 02:17:11 +02:00
Tomahawk CI
6b83b33fe4 Automatic merge of Transifex translations 2013-09-11 02:17:12 +02:00
Jason Herskowitz
18cb82f396 Convert Tomahawk font on splash screen to outlines 2013-09-10 11:31:22 -04:00
Jason Herskowitz
493fd3a169 Fix splash screen - replace image background with gradient 2013-09-10 11:01:03 -04:00
Teo Mrnjavac
5175b83d69 Make compile 2013-09-10 14:40:43 +02:00
Teo Mrnjavac
1e13e6b2a6 Fetch serviceName from LocalConfigStorage. 2013-09-10 14:16:37 +02:00
Teo Mrnjavac
047a83e3f1 Added OSX-specific code path to store creds under a single key. 2013-09-10 14:16:36 +02:00
Tomahawk CI
60722e1258 Automatic merge of Transifex translations 2013-09-10 02:17:17 +02:00
Christian Muehlhaeuser
06fa96b897 * Retrieve a name-filtered list of sources in drawLoveBox. 2013-09-10 01:26:45 +02:00
Christian Muehlhaeuser
ba670716a7 * Added option to filter result of sourcesWithSocialAction by friendlyName. 2013-09-10 01:26:45 +02:00
Jason Herskowitz
ca11b08f2d Standardize by using FRIENDS label 2013-09-09 15:26:21 -04:00
Jason Herskowitz
4bfb9db143 Update Dashboard subheader to provide a better description 2013-09-09 15:24:41 -04:00
Tomahawk CI
6e23fd5303 Automatic merge of Transifex translations 2013-09-09 02:17:14 +02:00
Jason Herskowitz
943972ce95 Update header description for Trending 2013-09-08 17:20:40 -04:00
Jason Herskowitz
1b6fc39344 Change Network Activity to Trending to make it more clear as to what it is 2013-09-08 17:13:53 -04:00
Jeff Mitchell
9f0661e9e2 Network Activity -> Trending 2013-09-08 16:21:00 -04:00
Christian Muehlhaeuser
08b2bdc566 * Added skeleton for DbCmd_ForceResync. 2013-09-08 20:27:55 +02:00
Christian Muehlhaeuser
e007f1cd72 * Fixed statusbar shifting to the right when going into fullscreen mode on OSX. 2013-09-08 06:16:00 +02:00
Christian Muehlhaeuser
467dd177d2 * Remove SuperCollection. 2013-09-08 02:34:07 +02:00
Tomahawk CI
78e1341cae Automatic merge of Transifex translations 2013-09-08 02:17:16 +02:00
Christian Muehlhaeuser
baab038566 * Update internal loved state sooner to make the UI feel more responsive. 2013-09-08 01:35:44 +02:00
Christian Muehlhaeuser
4ed80067fa * Also use queryTrack() when painting the love-box. 2013-09-08 01:32:43 +02:00
Christian Muehlhaeuser
a05e7c2b18 * Revert to checking queryTrack()'s loved status. 2013-09-08 01:29:59 +02:00
Christian Muehlhaeuser
f402fb39a7 * Make TrackData (re)parse SocialActions after setting a new one. 2013-09-08 01:22:33 +02:00
Christian Muehlhaeuser
8f701746a1 * Use new Track api to get SocialActions in PlaylistItemDelegate. 2013-09-08 01:21:37 +02:00
Christian Muehlhaeuser
b30a75ba85 * Added Track and TrackData::sourcesWithSocialAction( action, value ). 2013-09-08 01:20:07 +02:00
Christian Muehlhaeuser
aee9754e95 * Fixed HistoryWidget's extra header. 2013-09-07 23:09:06 +02:00
Christian Muehlhaeuser
e5c66b2b96 * Alt/Cmd+Left & +Right to jump between pages and Ctrl+Up & Down to change the volume. 2013-09-07 21:46:23 +02:00
Christian Muehlhaeuser
fa33c14ccc * Arrow keys left/right to jump to previous/next track. 2013-09-07 21:45:40 +02:00
Christian Muehlhaeuser
3343062fcc * Remove TemporaryPageItem from sidebar when its ViewPage gets destroyed. 2013-09-07 21:29:04 +02:00
Christian Muehlhaeuser
41aeff750b * Added shortcut (Ctrl+W / Cmd+W) for closing the current (temporary) page. 2013-09-07 21:28:13 +02:00
Christian Muehlhaeuser
24f10f2391 * Added ViewManager::destroyCurrentPage(). 2013-09-07 21:27:36 +02:00
Christian Muehlhaeuser
e2166a0a00 * Ensure sort is stable. 2013-09-07 20:53:48 +02:00
Christian Muehlhaeuser
b929ff7912 * Added comment about odd crash. 2013-09-07 20:52:58 +02:00
Christian Muehlhaeuser
56211adbf1 * Style fixes. 2013-09-07 20:52:24 +02:00
Christian Muehlhaeuser
669f27716e * Try using indexRowSizeHint for calculating view's height. 2013-09-07 19:30:16 +02:00
Christian Muehlhaeuser
3fb7b1ced0 * Using contentsMargins() to calculate the view height seems better. 2013-09-07 19:07:11 +02:00
Christian Muehlhaeuser
ccea2fdbed * Fixed Track- and Artist-page layout while loading items. 2013-09-07 18:19:59 +02:00
Christian Muehlhaeuser
5f157a4f78 * Fixed now playing indicator when playing from SearchWidgets. 2013-09-07 17:52:12 +02:00
Christian Muehlhaeuser
67f17102ee * Added new viewpage plugins to macdeploy. 2013-09-07 16:46:51 +02:00
Christian Muehlhaeuser
acced612d2 * Re-exported icons with gimp. 2013-09-07 16:20:40 +02:00
Christian Muehlhaeuser
5bb424414f * Renamed grayscale icon so it won't interfere with the app-icon macro. 2013-09-07 15:57:50 +02:00
Christian Muehlhaeuser
98de8bd9a4 * Updated ChangeLog. 2013-09-07 15:11:18 +02:00
Christian Muehlhaeuser
8b134d935f * Try to write BMPs without color space information. 2013-09-07 14:54:32 +02:00
Christian Muehlhaeuser
42a24a08b4 * Try old image to rule out installer weirdness. 2013-09-07 14:42:39 +02:00
Christian Muehlhaeuser
c2baee18ca * Try to fix installer bmps. 2013-09-07 14:24:49 +02:00
Tomahawk CI
9debfe6f81 Automatic merge of Transifex translations 2013-09-07 02:17:21 +02:00
Jeff Mitchell
a2e9ecfad1 Only deauth on 401 2013-09-06 16:22:39 -04:00
Jeff Mitchell
f3b7fc6cae Not all 401s are OTP needed 2013-09-06 16:06:16 -04:00
Christian Muehlhaeuser
11681c5b35 * Ensure similar tracks get resolved. 2013-09-06 19:38:26 +02:00
Jeff Mitchell
d1acd10b12 Update Hatchet account to use new API. 2013-09-06 13:31:08 -04:00
Christian Muehlhaeuser
b9133e57ba * Style fixes. 2013-09-06 19:22:27 +02:00
Christian Muehlhaeuser
c31f0ad9c7 * Remove creation of automatic playlists. 2013-09-06 16:20:30 +02:00
Christian Muehlhaeuser
7d16b5181d * Use native file-dialogs to pick library paths. 2013-09-06 15:02:53 +02:00
Christian Muehlhaeuser
4bc5b8cc98 * This should fix the CrashReporter crashing (*cough*) when not sending the report. 2013-09-06 13:36:16 +02:00
Christian Muehlhaeuser
dcc4ed6683 * Safer to use the DynamicPlaylist::removalHandler() method. 2013-09-06 11:10:27 +02:00
Christian Muehlhaeuser
945942b18a * DynamicPlaylist needs to store its own weak-ptr so we can access the dynplaylist_ptr (instead of only the playlist_ptr) internally. 2013-09-06 11:09:38 +02:00
Christian Muehlhaeuser
2244f23fde * Emit Playlist::aboutToBeDeleted from inside Playlist. 2013-09-06 11:07:29 +02:00
Tomahawk CI
0beac78da8 Automatic merge of Transifex translations 2013-09-06 02:17:16 +02:00
Christian Muehlhaeuser
5daf042976 * We shouldn't need to set an empty-tip in the ViewManager any longer. 2013-09-05 22:24:52 +02:00
Christian Muehlhaeuser
e414c00080 * Style fixes and debugging. 2013-09-05 22:24:23 +02:00
Christian Muehlhaeuser
585a7ad878 * Some of the ugliest, hackiest code I've written in recent times. Hack around broken QColumnView. 2013-09-05 22:19:46 +02:00
Christian Muehlhaeuser
73b023c96e * PlaylistView really must not control a model's loading state. 2013-09-05 17:14:40 +02:00
Christian Muehlhaeuser
15765f80b5 * PlaylistModel::startLoading() must be called earlier so we don't end up showing an empty-hint. 2013-09-05 17:14:19 +02:00
Christian Muehlhaeuser
215f9492f0 * Only disconnectAll / connectAll for sip-plugins. 2013-09-05 12:42:07 +02:00
Christian Muehlhaeuser
84a47cc251 * Don't access playlist data before it's loaded in ShortLinkHelper::shortLink(). 2013-09-05 12:06:29 +02:00
Christian Muehlhaeuser
df66559137 * Style fixes. 2013-09-05 11:02:00 +02:00
Christian Muehlhaeuser
a32d674b09 * Be a little less verbose. 2013-09-05 11:02:00 +02:00
Christian Muehlhaeuser
439ca29f99 * No need to manually call finishLoading in QueueView. 2013-09-05 11:02:00 +02:00
Christian Muehlhaeuser
1d3770eccf * Call startLoading() before dispatching to the resolver. 2013-09-05 11:02:00 +02:00
Christian Muehlhaeuser
354805b7b4 * Don't restore settings if the TrackView's guid didn't actually change. 2013-09-05 11:02:00 +02:00
Christian Muehlhaeuser
09fb1724b5 * Implement standard removeRows() method in PlayableModel. 2013-09-05 11:02:00 +02:00
Tomahawk CI
47d70b3592 Automatic merge of Transifex translations 2013-09-05 02:17:16 +02:00
Jason Herskowitz
12c2d6a7c0 Add splash screen 2013-09-04 16:29:17 -04:00
Christian Muehlhaeuser
2ae76ba33f * Added helpful comment. 2013-09-04 18:56:12 +02:00
Christian Muehlhaeuser
1e0eff1977 * Don't create manual drops when an InternalMove has been denied. 2013-09-04 18:53:44 +02:00
Christian Muehlhaeuser
53cfb08980 * This looks like a typo. 2013-09-04 18:11:15 +02:00
Jason Herskowitz
c756aa7667 If this doesn't fix the Windows installer image, then I'm stumped 2013-09-04 07:41:45 -04:00
Tomahawk CI
2d0a43b578 Automatic merge of Transifex translations 2013-09-04 02:17:25 +02:00
Jason Herskowitz
6cdc6825fd Update Windows installer sidebar image... did it work? 2013-09-03 18:35:51 -04:00
Christian Muehlhaeuser
516b8c946f * Style fixes. 2013-09-03 23:46:00 +02:00
Christian Muehlhaeuser
380368380e * Don't blindly accept all HTTP result-hints in an XSPF. 2013-09-03 23:41:47 +02:00
Christian Muehlhaeuser
a546268c7a * Don't whitelist youtube urls. They won't work. 2013-09-03 23:40:10 +02:00
Christian Muehlhaeuser
b9671f70a6 * Re-init SettingsDialog each time we show it (and delete it afterwards). 2013-09-03 22:38:25 +02:00
Christian Muehlhaeuser
e88252880f * Emit finished() when SettingsDialog closes. 2013-09-03 22:37:52 +02:00
Christian Muehlhaeuser
a5ff52ca91 * Style fixes. 2013-09-03 22:30:30 +02:00
Christian Muehlhaeuser
1e545dcc6c * Use the new SipPlugin::addContact() api. 2013-09-03 22:01:36 +02:00
Christian Muehlhaeuser
8b09d19341 * New SipPlugin::addContact() api. You can specify whether this is an invitation or a simple contact addition. 2013-09-03 22:00:51 +02:00
Christian Muehlhaeuser
f4aa6291c8 * MetadataEditor can change tags on Track again. 2013-09-03 20:51:35 +02:00
Christian Muehlhaeuser
8d6b02a9a7 * Let Track detach from TrackData when changing metadata. 2013-09-03 20:51:35 +02:00
Jason Herskowitz
6fb25fc68b Update changelog 2013-09-03 11:33:54 -04:00
Christian Muehlhaeuser
1d354cbba5 * Properly print out msg's payload. 2013-09-03 15:59:26 +02:00
Christian Muehlhaeuser
1b7af636a8 * There hasn't be a 0.7.1 release. 2013-09-03 15:59:08 +02:00
Christian Muehlhaeuser
b1df827245 * Signals using artist_ptr and track_ptr requires us to include their respective headers as well. 2013-09-03 15:58:18 +02:00
Christian Muehlhaeuser
9aafacdb98 * Use TomahawkStyle helpers in page widgets and a bit of DRY. 2013-09-03 15:58:18 +02:00
Christian Muehlhaeuser
90e080a55a * Added TomahawkStyle::stylePageWidget and remove actual frame from QFrame. 2013-09-03 15:58:18 +02:00
Uwe L. Korn
b86c179f2c Update ChangeLog 2013-09-03 15:54:00 +02:00
Dominik Schmidt
ac9c135521 Fix build 2013-09-03 14:57:19 +02:00
Uwe L. Korn
3e21b99904 incomingConnection has another signature on Qt5 2013-09-03 14:05:10 +02:00
Christian Muehlhaeuser
086662edd3 * Set proper background color and frame style on NetworkActivityWidget. Convenience method in TomahawkStyle to come. 2013-09-03 13:50:34 +02:00
Christian Muehlhaeuser
e895cf92be * We replaced the Fauna font. 2013-09-03 13:49:33 +02:00
Christian Muehlhaeuser
bffd198e53 * Print out invalid json message when it occurs. 2013-09-03 12:42:22 +02:00
Christian Muehlhaeuser
7e14c21135 * Removed obsolete preference from DatabaseResolver. 2013-09-03 12:38:41 +02:00
Christian Muehlhaeuser
ffb2e0b6d2 * Print out NAM on startup. 2013-09-03 12:37:55 +02:00
Christian Muehlhaeuser
819f1052ff * Started fixing NetworkActivityWidget's ui layout a bit. 2013-09-03 12:37:28 +02:00
Christian Muehlhaeuser
aee0b53992 * Style fixes. 2013-09-03 12:35:52 +02:00
Christian Muehlhaeuser
1736f82e5b * ShortWithAvatars is obsolete. 2013-09-03 12:34:52 +02:00
Christian Muehlhaeuser
639b28cc4f * Use love-box in PlaylistLargeItemDelegate. 2013-09-03 12:34:16 +02:00
Christian Muehlhaeuser
26969f3a55 * Added PlaylistItemDelegate::drawLoveBox() which paints a little box showing all the sources that loved a particular track. 2013-09-03 12:33:08 +02:00
Christian Muehlhaeuser
db9ccf778b * PlayableProxyModel::ShortWithAvatars is obsolete. 2013-09-03 12:32:11 +02:00
Christian Muehlhaeuser
888bfca6f5 * Forgot to update Track header for last commit. 2013-09-03 12:14:47 +02:00
Christian Muehlhaeuser
76b20ccfc0 * Track::socialActionPixmaps( action, height ) returns a list of matching avatars for a particular social action. 2013-09-03 12:14:24 +02:00
Christian Muehlhaeuser
2ef38eb291 * Update PlaylistDelegate. 2013-09-03 12:09:21 +02:00
Tomahawk CI
9224efd1af Automatic merge of Transifex translations 2013-09-03 02:17:19 +02:00
Christian Muehlhaeuser
73baea7690 * Fixed compiling Hatchet plugin with Qt4. 2013-09-03 00:44:16 +02:00
Christian Muehlhaeuser
61f208b0ec Merge pull request #213 from tomahawk-player/hatchet-qt5
Make hatchet account plugin Qt5 compatible
2013-09-02 14:50:41 -07:00
Uwe L. Korn
aefeeb58ca Qt5Sql uses 0 as the new false 2013-09-02 17:42:58 +02:00
Uwe L. Korn
9cb883f6a2 Silence some debug messages due to Qt5 slowness 2013-09-02 17:42:58 +02:00
Christian Muehlhaeuser
ab499d304a * SourceTreeItem needs to be linked to the correct ViewPage. 2013-09-02 17:31:57 +02:00
Christian Muehlhaeuser
17444bf7bc * Trigger showing our default ViewPage (dashboard) from the SourceTreeView. Just as ugly as from the SourcesModel. 2013-09-02 17:31:25 +02:00
Uwe L. Korn
a5d47d58a2 Fix compilation with older CMake versions 2013-09-02 13:37:38 +02:00
Uwe L. Korn
e697e7e57f connectNotify changed its signature with Qt5 2013-09-02 13:15:33 +02:00
Christian Muehlhaeuser
ab6e1e4a84 * Set model on the view before startLoading(). 2013-09-02 12:53:30 +02:00
Uwe L. Korn
55fb74dca9 Create Models before starting loading on them 2013-09-02 12:11:04 +02:00
Christian Muehlhaeuser
30bc86a87d * NetworkActivityWidget needs to call model's startLoading() earlier to make spinners show up. 2013-09-02 11:37:31 +02:00
Uwe L. Korn
085c87bdd4 Merge pull request #212 from tomahawk-player/crashreporter-qnetwork
Port CrashReporter to QNetwork-classes
2013-09-02 01:05:59 -07:00
Uwe L. Korn
0c6d6f71f1 Don't hardcode submission url in the CrashReporter class 2013-09-02 10:03:53 +02:00
Uwe L. Korn
fbf3820ae4 Activate CrashReporter for Qt5 2013-09-02 10:03:25 +02:00
Tomahawk CI
ba8c691a8d Automatic merge of Transifex translations 2013-09-02 02:17:20 +02:00
Uwe L. Korn
f8339081a7 Make a queued connection independent of the qt version 2013-09-01 19:44:11 +02:00
Uwe L. Korn
70e8b67b96 Port CrashReporter to QNetwork-classes 2013-09-01 19:44:11 +02:00
Uwe L. Korn
6d9062e251 Use new finalUrlReached signal 2013-09-01 18:04:20 +02:00
Uwe L. Korn
fe98f34458 Add functionality to play partially loaded Http streams 2013-09-01 18:04:20 +02:00
Uwe L. Korn
c4402c74b4 Only perform load track on the current track 2013-09-01 18:04:20 +02:00
Uwe L. Korn
0650ef2ec9 Speedup NetworkReply redirection 2013-09-01 18:04:20 +02:00
Christian Muehlhaeuser
660c633cde * Show empty tip on NetworkActivity's trending tracks. 2013-09-01 17:16:49 +02:00
Christian Muehlhaeuser
27320f2e67 * Correct color roles for NetworkActivityWidget's playlist-view. 2013-09-01 17:01:41 +02:00
Christian Muehlhaeuser
b577cdab5d * Fixed auto-resizing of GridViews for when we have exactly one row. 2013-09-01 17:01:41 +02:00
Uwe L. Korn
03158c3bbc Buffer HTTP streams to make them seekable 2013-09-01 15:16:36 +02:00
Christian Muehlhaeuser
17e7afee65 * XMPP plugin is now a .dylib. 2013-09-01 10:50:48 +02:00
Christian Muehlhaeuser
b766510f0d * Fixed plugin dirs on OSX. 2013-09-01 10:50:35 +02:00
Tomahawk CI
48fe53eaf1 Automatic merge of Transifex translations 2013-09-01 02:17:18 +02:00
Uwe L. Korn
61792f0859 Do declare right metatype for Qt4 2013-08-31 18:18:12 +02:00
Uwe L. Korn
aa740b191f Do HTTP(s) streaming by ourselves instead of passing the URL to phonon 2013-08-31 18:09:32 +02:00
Tomahawk CI
f9005f58c5 Automatic merge of Transifex translations 2013-08-31 02:17:18 +02:00
Uwe L. Korn
3f13ee1364 Only delete a widget if it still exists 2013-08-30 23:38:11 +02:00
Uwe L. Korn
0830c257fc Correctly delete QSharedPointers 2013-08-30 23:36:31 +02:00
Uwe L. Korn
8606fbd9b4 Propagate the Any-ip ifdef 2013-08-30 23:16:57 +02:00
Uwe L. Korn
36cd7b3008 Include TomahawkPlugin.h to (re)define some macros 2013-08-30 22:48:44 +02:00
Dominik Schmidt
bf0420945a Don't use native mac widgets with Qt5 2013-08-30 22:38:16 +02:00
Dominik Schmidt
f542c4846a Fix loading zeroconf with qt5 2013-08-30 22:33:53 +02:00
Uwe L. Korn
ea5f25951c s/Q_WS_X11/Q_OS_LINUX/ at some locations 2013-08-30 22:16:58 +02:00
Uwe L. Korn
b4cd4ed5ef Get the right appDataDir with Qt5 2013-08-30 21:29:06 +02:00
Uwe L. Korn
80f12c3410 Wait in ConnectMan for authentication until declaring a Connection as success 2013-08-30 21:04:26 +02:00
Uwe L. Korn
c137195e04 Make hatchet account plugin Qt5 compatible 2013-08-30 14:56:21 +02:00
Tomahawk CI
086b051665 Automatic merge of Transifex translations 2013-08-30 02:17:21 +02:00
Tomahawk CI
1c8ed6ab7d Automatic merge of Transifex translations 2013-08-29 02:17:38 +02:00
Uwe L. Korn
aee2e7372d Fix playdar startup. 2013-08-26 12:22:37 +02:00
Uwe L. Korn
3673eecd1b Fix windows installation of libtomahawk-playdarapi 2013-08-26 11:40:58 +02:00
Tomahawk CI
16924ea673 Automatic merge of Transifex translations 2013-08-26 02:17:46 +02:00
Uwe L. Korn
d93a9c1a4b Encapsulate ACL requests/decisions to move logic out of Connection 2013-08-25 12:00:54 +02:00
Uwe L. Korn
0da448c5a7 Add WeakObjectList helper class 2013-08-25 12:00:54 +02:00
Uwe L. Korn
67d2f4f44c Move ACLRegistry to network/acl/ as it takes care of networking-access 2013-08-25 12:00:54 +02:00
Uwe L. Korn
ee9d6e03ad Add some comments to tomahawk.js 2013-08-25 12:00:54 +02:00
Uwe L. Korn
39d12f573e Wrap creation of Playdar api in libtomahawk-playdarapi
* Qxt is now only used in libtomahawk-playdarapi and not required in any
  other target.
2013-08-25 12:00:54 +02:00
Tomahawk CI
99d46c8823 Automatic merge of Transifex translations 2013-08-25 02:17:17 +02:00
Uwe L. Korn
f818ecba52 Move initialization of Playdar API to the corresponding lib 2013-08-24 15:13:54 +02:00
Uwe L. Korn
a340be767d Move Playdar API into its own library 2013-08-24 14:19:24 +02:00
Uwe L. Korn
b6f6f42f23 Remove unneeded .data() calls for httpv1_session 2013-08-23 13:06:08 +02:00
Jason Herskowitz
96611ef021 Update Windows installer welcome.bmp image to more recent logo treatment 2013-08-22 09:07:41 -04:00
Tomahawk CI
2933542bd3 Automatic merge of Transifex translations 2013-08-21 02:17:20 +02:00
Christian Muehlhaeuser
d8fd298e0c * We're now depending on QJson 0.8.1. 2013-08-15 03:35:44 +02:00
Tomahawk CI
71dbe81461 Automatic merge of Transifex translations 2013-08-14 02:18:11 +02:00
Uwe L. Korn
2b58a6d7be Qt5 won't save us from some warnings 2013-08-13 20:26:53 +02:00
Uwe L. Korn
afa04e9e66 Only prefix JREEN logging with Qt4 2013-08-13 10:59:15 +00:00
Uwe L. Korn
c3a0eaddc5 Add Q_PLUGIN_METADATA to AccountFactories 2013-08-13 10:58:50 +00:00
Uwe L. Korn
5f1ddca1f5 Add Q_PLUGIN_METADATA to ViewPagePlugins 2013-08-13 10:21:16 +00:00
Tomahawk CI
ef775ed9c7 Automatic merge of Transifex translations 2013-08-13 02:17:05 +02:00
Uwe L. Korn
61723d8dd2 Only build Google-SIP if we have found Jreen. 2013-08-12 23:45:56 +02:00
Uwe L. Korn
29619f5937 Set the state of all peers to offline on disconnecting a jabber account. 2013-08-12 18:00:10 +02:00
Tomahawk CI
5340dc5e30 Automatic merge of Transifex translations 2013-08-11 02:17:32 +02:00
Stefan Derkits
34407d7e71 fix an initialization order warning in JobStatusView 2013-08-10 14:48:43 +02:00
Tomahawk CI
b4e02af829 Automatic merge of Transifex translations 2013-08-10 02:17:08 +02:00
Tomahawk CI
04a35d8f78 Automatic merge of Transifex translations 2013-08-08 02:17:10 +02:00
Uwe L. Korn
a8407f95d0 Merge pull request #211 from tomahawk-player/networkactivityplugin
Pluginify NetworkActivity
2013-08-07 14:21:53 -07:00
Dominik Schmidt
f112834ed4 Remove obsolete includes 2013-08-07 21:09:36 +02:00
Dominik Schmidt
ce68deb9e1 Pluginify NetworkActivity view page 2013-08-07 20:43:35 +02:00
Dominik Schmidt
453f746659 Move more logic from Dashboard to ViewPageLazyLoader 2013-08-07 20:37:43 +02:00
Dominik Schmidt
95a94ca60c Don't link against Phonon::experimental 2013-08-07 11:07:52 +02:00
Tomahawk CI
26271d3551 Automatic merge of Transifex translations 2013-08-07 02:16:33 +02:00
Dominik Schmidt
e074f4765f Link privately against Phonon to fix Grindstone build e.g. 2013-08-07 01:59:40 +02:00
Dominik Schmidt
99fcdc5614 Next sigh. Didn't break for me as I'm using clang. 2013-08-07 00:20:37 +02:00
Dominik Schmidt
c23bd08a92 *sigh* 2013-08-07 00:14:39 +02:00
Dominik Schmidt
07ae17b5e6 Phonon cmake config file is still a mess with Qt4 2013-08-06 23:59:36 +02:00
Jeff Mitchell
3c52e73595 Don't be so spammy in logs when DC is down 2013-08-06 13:10:20 -04:00
Teo Mrnjavac
48f2d3b45a Replace crappy ConfigStorage deduplication with decent deduplication.
+ const correctness
2013-08-06 10:33:52 +02:00
Tomahawk CI
8a9c1246ff Automatic merge of Transifex translations 2013-08-06 02:16:56 +02:00
Teo Mrnjavac
9fd383d4f9 Require QJson 0.8.1 2013-08-05 17:45:25 +02:00
Teo Mrnjavac
f6c2140f39 Better debug 2013-08-05 17:32:24 +02:00
Teo Mrnjavac
3444068677 JSON-serialize creds.
If you are running master you will have to re-enter your passwords, sorry :C
2013-08-05 17:27:25 +02:00
Tomahawk CI
64fc343a90 Automatic merge of Transifex translations 2013-08-05 02:16:50 +02:00
Christian Muehlhaeuser
3d5dd801b1 * Check whether GeneratorFactory returned a valid control. 2013-08-04 21:10:00 +02:00
Teo Mrnjavac
220ae243dc Revert "Use DpiScaler in GridView and delegate."
This reverts commit 872a937c03.
2013-08-04 16:51:38 +02:00
Teo Mrnjavac
f50f9d3ac2 Try disabling GridView item scaling. 2013-08-04 16:37:33 +02:00
Dominik Schmidt
c64ada1bcf Fix compilation on OSX 2013-08-04 14:55:02 +02:00
Dominik Schmidt
d88dfc014b Merge pull request #210 from TheOneRing/libdir-fix
fixed plugin dirs
2013-08-04 05:15:41 -07:00
Patrick von Reth
c6e81c6406 fixed plugin dirs 2013-08-04 13:58:37 +02:00
Dominik Schmidt
ff4e9bde45 Use new plugin loading api in SourcesModel for viewpages 2013-08-03 20:52:47 +02:00
Dominik Schmidt
42b8d5096b Make it even easier to load plugins 2013-08-03 20:52:47 +02:00
Uwe L. Korn
c8af9393f6 If a service does not want to load any credentials, emit ready early 2013-08-03 18:22:58 +02:00
Teo Mrnjavac
5e2b1e1dd9 Moar pixels to the GridView 2013-08-03 17:22:38 +02:00
Teo Mrnjavac
9f3046ddc6 Make GridView items bigger. 2013-08-03 17:09:09 +02:00
Teo Mrnjavac
b472db0191 Better debug output for QtKeychain jobs 2013-08-03 17:09:08 +02:00
Tomahawk CI
58baac0a6d Automatic merge of Transifex translations 2013-08-03 02:16:48 +02:00
Teo Mrnjavac
96dc4a07e5 Merge pull request #209 from tomahawk-player/viewpageplugins
ViewPagePlugins
2013-08-02 07:06:31 -07:00
Dominik Schmidt
c6438aea65 Make the 256x256px version of the tomahawk icon the default for pixmaps in viewpages 2013-08-02 15:50:15 +02:00
Dominik Schmidt
545321436b Make dashboard a standalone target 2013-08-02 14:49:41 +02:00
Dominik Schmidt
66e2a57beb Use ViewPagePlugin and ViewPageLazyLoader as base for Dashboard 2013-08-02 14:49:41 +02:00
Dominik Schmidt
be2af20ed0 Add ViewPageLazyLoader template 2013-08-02 14:49:36 +02:00
Dominik Schmidt
d18e34771b Add ViewPagePlugin base class 2013-08-02 14:48:58 +02:00
Teo Mrnjavac
4fc50935ab Merge pull request #205 from tomahawk-player/telepathyaccounts
Telepathy accounts support
2013-08-02 05:09:56 -07:00
Tomahawk CI
98d3c6e56c Automatic merge of Transifex translations 2013-08-02 02:16:35 +02:00
Dominik Schmidt
b78769c0f9 Fix sort order of viewpages in the sidebar 2013-08-01 22:48:49 +02:00
Teo Mrnjavac
1575174ab1 Avoid g++isms 2013-08-01 21:37:17 +02:00
Jeff Mitchell
dd34bf1fff Use 401 to indicate OTP needed, much better than string parsing 2013-08-01 15:17:45 -04:00
Tomahawk CI
d892eddeb9 Automatic merge of Transifex translations 2013-08-01 02:16:40 +02:00
Uwe L. Korn
d41c339246 Remove Top Loved Tracks from sidebar 2013-07-31 21:25:43 +02:00
Uwe L. Korn
866a9b148f Integrate Loved Tracks into NetworkActivity 2013-07-31 21:18:43 +02:00
Uwe L. Korn
387091e198 Fix RecentlyLovedModel 2013-07-31 21:18:25 +02:00
Uwe L. Korn
8a7c26227c Add missing limit property 2013-07-31 21:18:14 +02:00
Uwe L. Korn
91c5960523 Add RecentlyLovedTracksModel 2013-07-31 21:03:21 +02:00
Uwe L. Korn
6fd7c83fad Add an intermediate LovedTracksModel 2013-07-31 20:35:56 +02:00
Uwe L. Korn
c7e5fc62c2 Explicitly declare destructors virtual 2013-07-31 17:02:44 +02:00
Uwe L. Korn
477f7d63ef Move implementations out of the header 2013-07-31 16:59:35 +02:00
Uwe L. Korn
61bfe4e74d Add breadcrumbs for Top Loved 2013-07-31 16:44:19 +02:00
Uwe L. Korn
0faa02cac8 Rename LovedTracksModel to Top Loved Tracks 2013-07-31 16:44:19 +02:00
Teo Mrnjavac
dc34b228f0 Base size of GridView items changed from 160 to 120. 2013-07-31 16:40:46 +02:00
Teo Mrnjavac
1d2457c666 Add some scaling to the Accounts widget 2013-07-31 13:30:30 +02:00
Teo Mrnjavac
43ceb25753 Add margins scaling to DpiScaler 2013-07-31 13:30:05 +02:00
Teo Mrnjavac
6a821eef2e Fix main toolbar scaling. 2013-07-31 12:59:18 +02:00
Teo Mrnjavac
5ef100f526 Special cases, special cases everywhere. 2013-07-31 12:22:23 +02:00
Teo Mrnjavac
872a937c03 Use DpiScaler in GridView and delegate. 2013-07-31 12:09:26 +02:00
Tomahawk CI
0ccd790073 Automatic merge of Transifex translations 2013-07-31 02:16:36 +02:00
Teo Mrnjavac
4671e81617 Try another font size for scaling. 2013-07-31 00:21:40 +02:00
Teo Mrnjavac
fc4d0a7933 Try to guess a sane base font size on Mac 2013-07-30 22:00:17 +02:00
Teo Mrnjavac
00cb5fafe2 Make DpiScaler entirely dependent on absolute font height in px :C 2013-07-30 20:28:23 +02:00
Teo Mrnjavac
95c8d53b96 Add afwul hack to DpiScaler to guess actual DPI from font metrics. 2013-07-30 18:49:06 +02:00
Uwe L. Korn
6aee483cb7 Update empty tip for NetworkActivity Charts 2013-07-30 18:43:47 +02:00
Uwe L. Korn
ffbe322789 Make "Last week" the default NetworkActivity chart 2013-07-30 18:05:23 +02:00
Teo Mrnjavac
e66270fd30 Use DpiScaler for ViewPage header icons. 2013-07-30 16:18:05 +02:00
Teo Mrnjavac
b99bcd5d07 Added convenience static methods to DpiScaler 2013-07-30 16:18:05 +02:00
Teo Mrnjavac
73b7e724b4 Force NewAdditions icon to be rendered big enough for HiDPI displays. 2013-07-30 16:18:04 +02:00
Teo Mrnjavac
ba1f578a3c Force NetworkActivity icon to be rendered big enough for HiDPI displays. 2013-07-30 16:18:04 +02:00
Teo Mrnjavac
41cc799b76 Force Auto & Station icons to be rendered big enough for HiDPI displays. 2013-07-30 16:18:04 +02:00
Teo Mrnjavac
8dfc564956 Force Playlist icon to be rendered big enough for HiDPI displays. 2013-07-30 16:18:04 +02:00
Teo Mrnjavac
317a88e8c1 Force SuperCollection icon to be rendered big enough for HiDPI displays. 2013-07-30 16:18:04 +02:00
Teo Mrnjavac
44a8a7b446 Do some scaling in AudioControls and SeekSlider 2013-07-30 16:18:04 +02:00
Teo Mrnjavac
07877add3c Add DpiScaler for fixed pixel sizes conversion 2013-07-30 16:18:04 +02:00
Uwe L. Korn
76dc215036 Open playlist on click 2013-07-30 13:21:28 +02:00
Uwe L. Korn
6080e75f51 Do not expand Hot Playlists View on init 2013-07-30 13:03:04 +02:00
Uwe L. Korn
91b01038b1 Fix DB migration 2013-07-30 12:58:04 +02:00
Uwe L. Korn
157ee8f433 Speed up hot playlists by improving join performance 2013-07-30 12:55:12 +02:00
Uwe L. Korn
a3aaf13981 Queue JobStatusItems if no JobStatusView is yet instantiated. 2013-07-30 12:54:45 +02:00
Uwe L. Korn
96b5a32a66 Reactivate Hot Playlists 2013-07-30 12:13:47 +02:00
Uwe L. Korn
20b84ce507 Add old-style annotations for earlier qt-versions 2013-07-30 11:18:35 +02:00
Tomahawk CI
0bb417ed46 Automatic merge of Transifex translations 2013-07-30 02:16:35 +02:00
Uwe L. Korn
251fa024c4 Only add job if there is already a JobStatusView 2013-07-29 23:55:07 +02:00
Uwe L. Korn
526c492409 Add index on playback_log.playtime 2013-07-29 21:10:57 +02:00
Uwe L. Korn
031bd3a0b1 Speed up NetworkActivity by joining fewer rows 2013-07-29 20:20:38 +02:00
Uwe L. Korn
a21213cfcd Log peerInfoDebug only in verbose level 2013-07-29 20:03:02 +02:00
Uwe L. Korn
0d360d79c5 Shorten resolver error message to make them more readable 2013-07-29 19:44:22 +02:00
Uwe L. Korn
892e09a397 Revert unwanted Changes to WhatsHotWidget 2013-07-29 19:15:35 +02:00
Uwe L. Korn
531f6d78ab Add Trending Artists to Network Activity 2013-07-29 19:09:51 +02:00
Dominik Schmidt
e9635f69b2 Fix QDBus linkage on all platforms 2013-07-29 12:02:39 +02:00
Tomahawk CI
595508eeb8 Automatic merge of Transifex translations 2013-07-29 02:16:49 +02:00
Uwe L. Korn
a9eecbd246 Use TOMAHAWK_QT5 2013-07-28 22:00:37 +02:00
Uwe L. Korn
2b2d2e0390 As BUILD_WITH_QT4 is not always set like we assumed, use Qt5_Core 2013-07-28 21:54:19 +02:00
Dominik Schmidt
af1bf099e2 Find Phonon for Qt4 and Phonon4Qt5 for Qt5
Conflicts:
	CMakeLists.txt
2013-07-28 21:14:12 +02:00
Uwe L. Korn
5884db1e3b DRY: Use GAM logic instead of build an own one in MPRIS 2013-07-28 13:02:50 +02:00
Uwe L. Korn
832305008b Support (lazy) loading of XSPF Playlists through JSResolvers 2013-07-28 12:32:43 +02:00
Uwe L. Korn
8cf2f38896 Reactivate tests 2013-07-28 10:20:02 +02:00
Dominik Schmidt
fc0fec1fdc Fix tests for Qt5
Conflicts:
	tests/CMakeLists.txt
2013-07-28 10:17:33 +02:00
Tomahawk CI
0558b2396f Automatic merge of Transifex translations 2013-07-28 02:16:48 +02:00
Teo Mrnjavac
6ba337d35a Force high resolution for Dashboard icon 2013-07-27 19:10:04 +02:00
Teo Mrnjavac
e357aece18 Fix after borked rebase. 2013-07-27 19:06:17 +02:00
Teo Mrnjavac
f44e84fee0 Fix elision in description text 2013-07-27 18:59:47 +02:00
Teo Mrnjavac
c85e8aa3a2 Port BasicHeader fixes to InfoBar 2013-07-27 18:59:47 +02:00
Teo Mrnjavac
3b6f640bad Fix BasicHeader quirks on Hi-DPI displays. 2013-07-27 18:54:07 +02:00
Tomahawk CI
827540e8cf Automatic merge of Transifex translations 2013-07-27 02:16:34 +02:00
Uwe L. Korn
3c8272ba81 Revert removal of test targets 2013-07-26 19:48:56 +02:00
Uwe L. Korn
ccc1c260f1 qdbusxml2cpp is only found if QtDBus is explicity "found" 2013-07-26 19:46:09 +02:00
Uwe L. Korn
a10f04e504 Qt5: Full definition of PlaylistInterface need for compiling 2013-07-26 19:46:09 +02:00
Uwe L. Korn
0425c0fc17 Export DynamicControl to support linking with Qt5 2013-07-26 19:46:08 +02:00
Uwe L. Korn
c26c9e3ca1 Export InfoSystemCache to link with qt5 2013-07-26 19:46:08 +02:00
Jeff Mitchell
26d1e524d5 Only show the OTP bits if configured on the account, in a secondary login step 2013-07-26 11:34:16 -04:00
Uwe L. Korn
fe4e281ab3 Remove softkeys usage 2013-07-26 16:12:22 +02:00
Uwe L. Korn
72557b1f5d fromAscii is removed in Qt5, use standard constructor here 2013-07-26 16:06:59 +02:00
Uwe L. Korn
0dd64c8e36 Deprecate Softkeys with Qt5 2013-07-26 16:06:59 +02:00
Christian Muehlhaeuser
6bcc662f7b * Don't show a score for offline sources. 2013-07-26 15:12:34 +02:00
Christian Muehlhaeuser
e556bbe178 * Fixed deprecated InfoBar to look like the new header. 2013-07-26 15:12:34 +02:00
Uwe L. Korn
46572cc5d1 Qt5 sometimes defines Metatypes by itself, don't define them twice 2013-07-26 12:22:23 +02:00
Uwe L. Korn
852ef9d339 Cleanup header 2013-07-26 10:34:09 +02:00
Teo Mrnjavac
c5ec5bce41 Fix coding style. 2013-07-24 18:02:59 +02:00
Teo Mrnjavac
016466bd52 Store the enabled state of external accounts 2013-07-24 18:02:59 +02:00
Teo Mrnjavac
5be9204db2 Added ConfigStorage priority and account deduplication. 2013-07-24 18:02:59 +02:00
Teo Mrnjavac
b08cc64a88 Default to LocalConfigStorage for (new) accounts without CS. 2013-07-24 18:02:59 +02:00
Teo Mrnjavac
2cd1736203 Store to LocalConfigStorage as fallback when installing a ResolverAccount. 2013-07-24 18:02:59 +02:00
Teo Mrnjavac
af6a90f956 Remove cruft 2013-07-24 18:02:59 +02:00
Teo Mrnjavac
484b7ccb88 Ensure we have a string to show if a Tp account name is empty. 2013-07-24 18:02:59 +02:00
Teo Mrnjavac
b08ba3fe40 KTp KCM dialog title 2013-07-24 18:02:59 +02:00
Teo Mrnjavac
e2f31fdd68 Show KTp KCM for KTp akkounts. 2013-07-24 18:02:59 +02:00
Dominik Schmidt
1c61c5ae25 Return 0 for KdeConfigWidget if kcm_ktp_accounts was not found 2013-07-24 18:02:58 +02:00
Dominik Schmidt
8f1c4aeaf0 Yo dawg (teo-), I put a plugin in your plugin, so I can load another plugin for showing an in-application KDE config widget 2013-07-24 18:02:58 +02:00
Dominik Schmidt
a5121f3ad1 Remove obsolete QPluginLoader include from TomahawkApp 2013-07-24 18:02:58 +02:00
Dominik Schmidt
b2bb0349be Make building with Qt4 the default even if Qt5 was found 2013-07-24 18:02:58 +02:00
Dominik Schmidt
d965783a53 Centralize plugin loading logic in Tomahawk::Utils::PluginLoader 2013-07-24 18:02:58 +02:00
Dominik Schmidt
93bbf44669 Centralize plugin finding logic in Tomahawk::Utils::PluginLoader 2013-07-24 18:02:58 +02:00
Teo Mrnjavac
e80a5ba2e5 Lock external account config UI, launch KDE Telepathy config dialog. 2013-07-24 18:02:58 +02:00
Teo Mrnjavac
bec87f692d Add GTalk support for Telepathy accounts. 2013-07-24 18:02:58 +02:00
Teo Mrnjavac
99c3fb4431 Obsolete cmakedefine is obsolete. 2013-07-24 18:02:58 +02:00
Teo Mrnjavac
2416de9697 Just say NO to implementations in headers! 2013-07-24 18:02:58 +02:00
Teo Mrnjavac
1bc3bf3b05 Don't carry Telepathy objectPaths around more than necessary. 2013-07-24 18:02:58 +02:00
Teo Mrnjavac
530a838a1f Add Telepathy magic to TelepathyConfigStorage 2013-07-24 18:02:58 +02:00
Teo Mrnjavac
2db2cdb996 Load TelepathyConfigStorage plugin. 2013-07-24 18:02:58 +02:00
Teo Mrnjavac
ebd7091fda Asyncify ConfigStorage loading, and allow multiple ConfigStorages. 2013-07-24 18:02:57 +02:00
Teo Mrnjavac
08158ca405 ConfigStorage is now in charge of initializing its own account credentials in CredentialsManager. 2013-07-24 18:02:57 +02:00
Teo Mrnjavac
e4fbe9bffb Create TelepathyConfigStorage as plugin, and link against TelepathyQt. 2013-07-24 18:02:57 +02:00
Teo Mrnjavac
63f9168b4a Added ConfigStorage and LocalConfigStorage, preparation for Telepathy. 2013-07-24 18:02:57 +02:00
Teo Mrnjavac
09a20e98d1 CredentialsManager can now read/write under different service names. 2013-07-24 18:02:57 +02:00
Uwe L. Korn
6fa9379dae Fix hatchet compilation 2013-07-24 15:54:25 +02:00
Uwe L. Korn
3be57dd280 QT5_MODULES is multivalue 2013-07-24 13:03:15 +02:00
Uwe L. Korn
2059358b90 Add possibility to specify custom qt5 modules to a library 2013-07-24 12:58:53 +02:00
Uwe L. Korn
65dfc34303 Add missing includes 2013-07-24 12:13:32 +02:00
Teo Mrnjavac
6017d0276f Properly reset ProxyModel 2013-07-24 11:59:24 +02:00
Uwe L. Korn
e2f069833b Use same signage on comparison 2013-07-24 11:29:54 +02:00
Uwe L. Korn
95dac14782 Prevent redirect loops 2013-07-24 11:27:11 +02:00
Uwe L. Korn
d755415704 On blacklisted redirect, emit correct final URL 2013-07-24 10:38:06 +02:00
Uwe L. Korn
15564cec5c Qt5: Complete definition of Track needed in header 2013-07-24 10:25:30 +02:00
Uwe L. Korn
46ee8421dc Merge pull request #206 from tomahawk-player/qt5compilation
Change TomahawkUse.cmake to make Qt5 Compilation possible
2013-07-24 01:08:31 -07:00
Christian Muehlhaeuser
784fe292a2 * Obsolete code. 2013-07-24 03:55:57 +02:00
Christian Muehlhaeuser
cd20fbbab7 * Fixed stable sorting issues. 2013-07-24 03:47:11 +02:00
Tomahawk CI
ce96e084f2 Automatic merge of Transifex translations 2013-07-24 02:16:39 +02:00
Dominik Schmidt
ddf6f3d3e1 Install plugins to lib/ even if they are shared libs 2013-07-23 22:29:06 +02:00
Dominik Schmidt
0d6b0fc6a9 Fix TomahawkAddLibrary to install .dll files to bin/ 2013-07-23 22:17:20 +02:00
Dominik Schmidt
288194a337 Merge pull request #202 from TheOneRing/ninja_fix
make tomahawk compile with ninja again
2013-07-23 12:25:29 -07:00
Uwe L. Korn
a824af5d96 Forward declarations still output warnings with qt5 2013-07-23 17:12:43 +02:00
Uwe L. Korn
268b0051eb Change TomahawkUse.cmake to make Qt5 Compilation possible 2013-07-23 17:09:29 +02:00
Uwe L. Korn
296bbf93eb Forward declarations still output warnings with qt5 2013-07-23 17:04:14 +02:00
Uwe L. Korn
1769c03d98 Add missing include directory to compile libportfwd with qt5 2013-07-23 16:52:23 +02:00
Uwe L. Korn
0af4b46c50 Blacklist deezer redirects 2013-07-23 10:15:44 +02:00
Uwe L. Korn
58c3224b0a Debug spam++ 2013-07-23 10:15:44 +02:00
Tomahawk CI
e68bf7c8c6 Automatic merge of Transifex translations 2013-07-23 02:16:43 +02:00
Tomahawk CI
395b3edfd4 Automatic merge of Transifex translations 2013-07-22 02:16:56 +02:00
Uwe L. Korn
25a24bde05 Wait until we have loaded Albums track 2013-07-21 17:09:11 +02:00
Uwe L. Korn
aec1b1ac80 Support dropping of artists 2013-07-21 15:11:13 +02:00
Tomahawk CI
af68c147b9 Automatic merge of Transifex translations 2013-07-21 02:16:39 +02:00
Uwe L. Korn
192e08aa55 Remove unused includes 2013-07-20 17:52:08 +02:00
Uwe L. Korn
41f3dfe5fa Minor style cleanups 2013-07-20 17:01:23 +02:00
Uwe L. Korn
da3f7b7a3e Fix current track related things in NetworkActivity 2013-07-20 16:02:23 +02:00
Uwe L. Korn
86c31aa7fb Add missing date selection 2013-07-20 15:10:23 +02:00
Uwe L. Korn
c369d8ab62 Temporarily increase number of trending tracks to fill up empty space 2013-07-20 15:05:51 +02:00
Uwe L. Korn
4ff7085d34 Temporarily deactivate hot playlists 2013-07-20 15:02:29 +02:00
Uwe L. Korn
ec1db6671a Really use all data instead of only cached 2013-07-20 14:53:39 +02:00
Uwe L. Korn
2747b9b962 Prefix playlist table in query 2013-07-20 13:46:46 +02:00
Uwe L. Korn
87c1880886 Simplify orderToken 2013-07-20 13:39:54 +02:00
Uwe L. Korn
0814f6055b Remove not needed includes 2013-07-20 13:39:36 +02:00
Uwe L. Korn
c502f6ac08 Pimple LoadAllPlaylists 2013-07-20 13:35:28 +02:00
Uwe L. Korn
30db29c564 Internally store trackIds instead of tracks 2013-07-20 13:25:02 +02:00
Tomahawk CI
24ca843654 Automatic merge of Transifex translations 2013-07-19 02:16:42 +02:00
Dominik Schmidt
af78a0cecc Merge pull request #203 from TheOneRing/windows_fixes
make tomahawk compile on windows again
2013-07-18 15:40:15 -07:00
Uwe L. Korn
98864dbd32 Move NetworkActivity into correct namespaces 2013-07-18 12:08:57 +02:00
Uwe L. Korn
5921e2514c Remove unused includes 2013-07-18 11:57:33 +02:00
Uwe L. Korn
101d6c2991 Compare only as IPv6 as IPv4 address are often mapped to IPv6 addresses 2013-07-18 11:48:57 +02:00
Tomahawk CI
af59024e6c Automatic merge of Transifex translations 2013-07-18 02:16:54 +02:00
Uwe L. Korn
c0b54f0410 Make tomahawk.js more portable 2013-07-17 18:21:48 +02:00
Tomahawk CI
fc45207ba7 Automatic merge of Transifex translations 2013-07-17 02:16:33 +02:00
Jason Herskowitz
47f5d6683b Tweak artist placeholder image so that the play button will look centered 2013-07-17 00:36:05 +02:00
Christian Muehlhaeuser
ec7cd0aa09 * Moved album & artist name out of the PlayableCover in AlbumInfoWidget. 2013-07-17 00:09:34 +02:00
Christian Muehlhaeuser
69691bb217 * Style fix for TrackInfoWidget. 2013-07-17 00:09:34 +02:00
Christian Muehlhaeuser
51c0366190 * PlayableCovers are now dragable. 2013-07-17 00:09:34 +02:00
Patrick von Reth
73b7336269 fixed typo 2013-07-16 20:50:21 +02:00
Patrick von Reth
408d2d11ad silence some warnings 2013-07-16 20:46:17 +02:00
Patrick von Reth
fc388271b4 fixed missing include 2013-07-16 20:44:00 +02:00
Uwe L. Korn
12709a47ea Add API version, add functionality to Tomahawk.*Request 2013-07-16 20:32:23 +02:00
Patrick von Reth
a5fd16c143 make tomahawk compile on windows again 2013-07-16 19:57:38 +02:00
Patrick von Reth
c2fc03a330 make tomahawk compile with ninja again 2013-07-16 19:36:23 +02:00
Uwe L. Korn
62a1c1351f Do not use TomahawkSettings in (Dynamic)Playlist 2013-07-16 17:07:08 +02:00
Uwe L. Korn
527c68b15a Do not use TomahawkSettings in (Dynamic)Playlist 2013-07-16 17:04:18 +02:00
Christian Muehlhaeuser
50de3c029d * And more debug output. 2013-07-16 15:04:21 +02:00
Uwe L. Korn
2c498b829b Fix pimple effects in SpotifyAccout too 2013-07-16 14:43:14 +02:00
Christian Muehlhaeuser
baa72a25de * Added even more debug output to track Jason's crash. 2013-07-16 14:39:56 +02:00
Uwe L. Korn
319653dd6d Extract ShortLink handling into utils/ 2013-07-16 14:35:45 +02:00
Uwe L. Korn
867e7d5ec0 Pimple Album 2013-07-16 14:35:45 +02:00
Uwe L. Korn
9c1acc7dc2 Move implementations out of the header 2013-07-16 14:35:45 +02:00
Uwe L. Korn
bc24148e85 Move implementation out of the header 2013-07-16 14:35:45 +02:00
Christian Muehlhaeuser
95031dddce * Added debug output to track Jason's crash. 2013-07-16 14:35:22 +02:00
Christian Muehlhaeuser
23ed63682d * Made a bunch of static variables... well, static. 2013-07-16 14:19:27 +02:00
Uwe L. Korn
1f124dec53 Add "Hot Playlists" to NetworkActivity 2013-07-16 11:35:48 +02:00
Uwe L. Korn
6dba78b27f Remove debug output 2013-07-16 11:35:48 +02:00
Uwe L. Korn
6d76777f55 Move implementations out of the header 2013-07-16 11:35:47 +02:00
Uwe L. Korn
31949722a8 Move implementations to the right file 2013-07-16 11:35:47 +02:00
Uwe L. Korn
3056658713 Move implementations to the right file 2013-07-16 11:35:47 +02:00
Uwe L. Korn
b291b81f00 Minor cleanups 2013-07-16 11:35:47 +02:00
Uwe L. Korn
048114dba9 Pimple Track 2013-07-16 11:35:47 +02:00
Dominik Schmidt
470f30c0e3 Style cleanup 2013-07-16 11:34:05 +02:00
Dominik Schmidt
042beadff7 Merge pull request #198 from saidinesh5/visualizer_plugin
Added support for fetching Audio Data from the AudioEngine.
2013-07-16 02:26:22 -07:00
Dinesh Manajipet
09d8ccfcae Added support for fetching Audio Data from the AudioEngine.
API:
bool activateDataOutput();
bool deactivateDataOutput();
and watchout for the bat signal...I mean audioDataReady( ... ) of
course!
2013-07-16 14:43:23 +05:30
Dominik Schmidt
36ef3a4420 Completely rip TomahawkSettings out of proxy code 2013-07-16 09:31:10 +02:00
Tomahawk CI
c220899e82 Automatic merge of Transifex translations 2013-07-16 02:16:41 +02:00
Dominik Schmidt
05b6d7507b Move nam() out of TomahawkUtils.h 2013-07-15 17:54:25 +02:00
Tomahawk CI
a849636571 Automatic merge of Transifex translations 2013-07-15 02:16:51 +02:00
Tomahawk CI
e1d041f9b1 Automatic merge of Transifex translations 2013-07-14 02:16:31 +02:00
Uwe L. Korn
eb9a89f9d8 Move "data mining/aggregation" into its own worker thread 2013-07-13 18:01:12 +02:00
Uwe L. Korn
8f1943bcfb Remove ex.fm parser 2013-07-13 13:53:38 +02:00
Uwe L. Korn
470f2956aa Cleanup InfoSystem header 2013-07-13 12:18:23 +02:00
Tomahawk CI
daa7da2f77 Automatic merge of Transifex translations 2013-07-13 02:16:45 +02:00
Uwe L. Korn
365fb989a4 Pimple Playlist 2013-07-12 18:14:02 +02:00
Uwe L. Korn
ce4143e79f Pimple Query 2013-07-12 17:45:57 +02:00
Uwe L. Korn
8af04d5649 Cleanup some headers 2013-07-12 16:34:00 +02:00
Tomahawk CI
9f9bacf0de Automatic merge of Transifex translations 2013-07-12 02:16:45 +02:00
Uwe L. Korn
5b164639ac Add a penalty score to tracks with low playcount in the last weeks. 2013-07-11 19:06:20 +02:00
Stefan Derkits
ef9472d1e8 added Acoustic & Electric songtype 2013-07-11 14:46:13 +02:00
Tomahawk CI
4a9df0676e Automatic merge of Transifex translations 2013-07-11 02:16:35 +02:00
Uwe L. Korn
bfb3ff5eb0 Merge pull request #201 from lorenzhs/dragging
fix segfault due to NULL m_get()
2013-07-10 12:38:33 -07:00
Lorenz H-S
bb7b9f8fb7 fix segfault due to NULL m_get() 2013-07-10 21:28:50 +02:00
Uwe L. Korn
355d8439a5 Merge pull request #200 from lorenzhs/dragging
Pass GenericPageItems' dragging to its ViewPage
2013-07-10 11:59:31 -07:00
Lorenz H-S
15d7b3fe2a Pass GenericPageItems' dragging to its ViewPage 2013-07-10 20:31:43 +02:00
Uwe L. Korn
8b8455c97c Add basic trending tracks in NetworkActivities 2013-07-10 19:39:03 +02:00
Uwe L. Korn
f87bf7921d Pimple DatabaseCommand 2013-07-10 19:39:03 +02:00
Tomahawk CI
a92cc59851 Automatic merge of Transifex translations 2013-07-10 02:16:47 +02:00
dridri
c8ec48577e Added Equalizer support on AudioEngine class
Two public methods added :
 * int equalizerBandCount()
 * bool setEqualizerBand(int band, int value)
One private method :
 * void initEqualizer()

Settings and GUI must be made in an external plugin
2013-07-10 02:03:01 +02:00
Tomahawk CI
18e1fa1585 Automatic merge of Transifex translations 2013-07-09 02:16:55 +02:00
Uwe L. Korn
0af3deea56 Make it possible to show the artist in the AlbumDelegate 2013-07-08 21:29:04 +02:00
Uwe L. Korn
5ef778fd85 Fix crash on trying highlight a row if none has been hovered over yet 2013-07-08 19:11:44 +02:00
Uwe L. Korn
872810791a Fix basic header size 2013-07-08 17:05:09 +02:00
Uwe L. Korn
b718f4ad12 Add lookupUrl to ChangeLog 2013-07-08 15:59:20 +02:00
Uwe L. Korn
819b0eb0ad Fix minor nitpicks 2013-07-08 15:51:45 +02:00
Uwe L. Korn
0f7038c8bc Move implementations out of the header 2013-07-08 15:51:45 +02:00
Uwe L. Korn
8097c4a513 Remove unneeded Include 2013-07-08 15:51:45 +02:00
Uwe L. Korn
93e2a8697c Move handling of URLs into GAM 2013-07-08 15:51:45 +02:00
Uwe L. Korn
58634ddbc8 Remove SoundCloudParser 2013-07-08 15:51:45 +02:00
Uwe L. Korn
dcb1ea7022 Add playlist D'n'D handling 2013-07-08 15:51:45 +02:00
Uwe L. Korn
398235287f Remove obsolete Method declaration 2013-07-08 15:51:44 +02:00
Uwe L. Korn
b718116ae9 Remove SoundCloud and add ScriptResolvers to DropJob 2013-07-08 15:51:44 +02:00
Uwe L. Korn
4fec697d83 Pass UrlType to canParse 2013-07-08 15:51:44 +02:00
Uwe L. Korn
65e1c530cf Add TomahawkUrlType 2013-07-08 15:51:44 +02:00
Tomahawk CI
2793e4cc29 Automatic merge of Transifex translations 2013-07-08 02:16:57 +02:00
Tomahawk CI
90b3ea0acb Automatic merge of Transifex translations 2013-07-07 02:16:38 +02:00
Uwe L. Korn
2b2ecf8132 Add (lazy) loading for Playlists from JSResolvers 2013-07-07 02:03:57 +02:00
Uwe L. Korn
21a7f96b50 Warnings-- 2013-07-07 02:03:57 +02:00
Teo Mrnjavac
f113a40c77 Make dbcmds keep their own weakref, and make ShareTrack work. 2013-07-06 18:35:43 +02:00
Teo Mrnjavac
29f09e4ed1 Move ShareTrack post-commit to InboxModel. 2013-07-06 18:35:43 +02:00
Uwe L. Korn
0c81889010 Decouple Servent from TomahawkSettings 2013-07-06 18:13:53 +02:00
Dominik Schmidt
e480f18b68 Don't assert if results come from the database but have no valid collection 2013-07-06 17:54:28 +02:00
Teo Mrnjavac
26b98fd6e3 Namespacify Database classes into Tomahawk:: 2013-07-06 16:11:32 +02:00
Teo Mrnjavac
998099abcc Tests! 2013-07-06 12:31:38 +02:00
Teo Mrnjavac
b64162ecce Add dbcmd_ptr to typedefs 2013-07-06 11:52:22 +02:00
Teo Mrnjavac
823b75f831 QSharedPtrify dbcmd creation. 2013-07-06 11:37:54 +02:00
Dominik Schmidt
3100cae9d4 Test a commandFactory is not available before the command was registered 2013-07-06 10:22:49 +02:00
Dominik Schmidt
a006a32523 Add Test for factory magic 2013-07-06 10:22:32 +02:00
Dominik Schmidt
f2d28ac958 Add API to access DBCommand factories so you can observe automatically created instances 2013-07-06 10:22:32 +02:00
Dominik Schmidt
3b175b3fb3 Use factories for creatig databasecommands in database
Thanks a lot to @rioderelfte for a long discussion on how to make this
more elegant - sorry, for not realizing your suggestions, too much work
for now just to be able to call commandname() statically.
2013-07-06 10:22:31 +02:00
Dominik Schmidt
f8cac9a3a8 Move command factory from DatabaseCommand to Database 2013-07-06 10:22:31 +02:00
Dominik Schmidt
9a02258e00 Move icon() from ExternalResolverGui to ExternalResolver to make ScriptCollection "GUI-less" 2013-07-06 10:22:31 +02:00
Teo Mrnjavac
218394015b Increase general ScriptCommand timeout to 20s 2013-07-05 14:50:54 +02:00
Teo Mrnjavac
e27891172a Debug spam for ScriptCommand failure 2013-07-05 14:39:20 +02:00
Tomahawk CI
6edc129cb7 Automatic merge of Transifex translations 2013-07-05 02:16:37 +02:00
Uwe L. Korn
89a851194e Consistent coding style (jslint) 2013-07-04 17:22:43 +02:00
Uwe L. Korn
a9bd4e82b4 Correctly load CryptoJS 2013-07-04 17:22:42 +02:00
Uwe L. Korn
0c343a8ad7 Change license from GPL to MIT-style after agreement from all authors 2013-07-04 17:22:42 +02:00
Uwe L. Korn
f542631337 Replace CC-BY-UK-2.0 licensed with New BSD licensed sha256 code 2013-07-04 17:22:42 +02:00
Dominik Schmidt
17ca3693b3 Fix build. qt_add_dbus_interface doesn't like directories in the basename 2013-07-04 11:15:24 +02:00
Uwe L. Korn
833b6cbbf0 There is no CMakeLists in linux/ anymore 2013-07-04 10:31:48 +02:00
Uwe L. Korn
fc4bac5bb7 Move GnomeShortcutHandler into linux/ 2013-07-04 10:28:39 +02:00
Tomahawk CI
f566618b28 Automatic merge of Transifex translations 2013-07-04 02:16:43 +02:00
Uwe L. Korn
fd862e2265 Build D-Bus interfaces with Qt5 2013-07-03 22:30:00 +02:00
Dominik Schmidt
6c23c4d660 Don't connect class B and C in class A. Fix bug where AudioEngine<->SourcePlaylistInterface connection wasn't disconnected 2013-07-03 21:01:04 +02:00
Dominik Schmidt
bcd3120779 Connect the AudioEngine::paused() signal to
SourcePlaylistInterface::audioPaused() in LatchManager
2013-07-03 20:34:00 +02:00
Dominik Schmidt
69ee958b45 Get rid of obsolete Bookmark handling code in LocalCollection and GlobalActionManager 2013-07-03 19:09:11 +02:00
Dominik Schmidt
6c55f8c4a0 Get rid of InfoSystemCache version 2013-07-03 18:50:53 +02:00
Teo Mrnjavac
ea6374c515 Remove include too 2013-07-03 13:25:29 +02:00
Teo Mrnjavac
5b6e9137b8 Remove SourceTreePopupDialog usage from Playlist 2013-07-03 13:24:50 +02:00
Teo Mrnjavac
57ab8a5ce9 Let splitters choose to be fat on retina-DPI KDE file dialogs. 2013-07-03 13:00:21 +02:00
Tomahawk CI
2be80881ee Automatic merge of Transifex translations 2013-07-03 02:16:47 +02:00
Uwe L. Korn
5861001e2d Use ScopedPointer to automatically delete Private 2013-07-02 15:49:50 +02:00
Tomahawk CI
ff1a9d9064 Automatic merge of Transifex translations 2013-07-02 02:16:58 +02:00
Jeff Mitchell
d006dd3d0f Actually construct the private pointer 2013-07-01 18:36:13 -04:00
Uwe L. Korn
85633d1440 Pimple PlaylistEntry 2013-07-01 16:31:34 +02:00
Uwe L. Korn
9a5afc9522 Ignore Doxyfile 2013-07-01 15:53:29 +02:00
Uwe L. Korn
0a9a8b4a99 Do private Doxyfile in public repos :( 2013-07-01 15:42:43 +02:00
Uwe L. Korn
91223c45e0 Pimple Playlist 2013-07-01 15:27:53 +02:00
Dominik Schmidt
5c7868f4fe Don't recompile the xmpp account inside the Google account 2013-07-01 13:16:06 +02:00
Dominik Schmidt
d1e67c56d1 Fix plugin macro once again to pass through COMPILE_DEFINITIONS this time 2013-07-01 13:14:49 +02:00
Uwe L. Korn
2495492035 Cleanup Playlist.h 2013-07-01 12:54:57 +02:00
Uwe L. Korn
b88cb1d38b Do not use qDebug in headers 2013-07-01 12:54:57 +02:00
Dominik Schmidt
6ee029623a Fix tomahawk_add_plugin macro 2013-07-01 12:23:34 +02:00
Uwe L. Korn
03e4570452 Add UrlLookup functionality to JSResolvers 2013-07-01 11:55:22 +02:00
Uwe L. Korn
6c75a94479 Cleanup some includes 2013-07-01 11:50:05 +02:00
Tomahawk CI
ae76ca840a Automatic merge of Transifex translations 2013-07-01 02:16:24 +02:00
Dominik Schmidt
a126934e52 Woops, fix last commit. 2013-07-01 00:42:18 +02:00
Dominik Schmidt
c1d999c6a3 Move libtomahawk-widgets to src/libtomahawk-widgets from a libtomahawk subdir 2013-07-01 00:34:48 +02:00
Dominik Schmidt
4ec651c378 Move NetworkActivityWidget into Tomahawk::Widgets namespace 2013-06-30 23:39:20 +02:00
Dominik Schmidt
edbc60f274 Move Dashboard to libtomahawk-widgets 2013-06-30 23:30:00 +02:00
Dominik Schmidt
62f1fde90a Move NetworkActivityWidget to libtomahawk-widgets 2013-06-30 22:08:39 +02:00
Dominik Schmidt
1f66489755 Move some logic out of the tomahawk_add_plugin macro to a tomahawk_add_library macro 2013-06-30 22:08:39 +02:00
Dominik Schmidt
ae13f92885 Replace our custom parse arguments macro (copied from wiki) with upstream cmake_parse_arguments macro 2013-06-30 22:08:39 +02:00
Uwe L. Korn
ca1db0cd48 Debug spam-- 2013-06-30 14:14:18 +02:00
Uwe L. Korn
607caf4456 Show visual message if IP auto-detect failed. 2013-06-30 13:57:44 +02:00
Dominik Schmidt
9d2bda1b93 Get rid of our own DEBUG_BUILD switch, we can safely rely on QT_DEBUG/QT_NO_DEBUG 2013-06-30 13:39:41 +02:00
Uwe L. Korn
7a25b55220 Add an option to automatically detect the external IP(v4) 2013-06-30 12:29:00 +02:00
Uwe L. Korn
dd4e2916c8 Return empty nodeId if we have none 2013-06-29 18:15:43 +02:00
Uwe L. Korn
c73be4d9ac Move avatar into Private 2013-06-29 18:12:05 +02:00
Uwe L. Korn
729d745447 Only setup a Connection once 2013-06-29 09:04:48 +02:00
Uwe L. Korn
f0ea262091 Keep lazy offers lazy 2013-06-29 09:04:42 +02:00
Uwe L. Korn
8902bae463 Only match duplicates on inbound Connections 2013-06-29 09:04:26 +02:00
Uwe L. Korn
6bb441281e Connections should be started in the thread they live 2013-06-29 09:04:12 +02:00
Teo Mrnjavac
a8e552c7ac Update README.md 2013-06-28 21:52:33 +02:00
Uwe L. Korn
ca9cf6b791 Set nodeId on lazy offers 2013-06-28 14:23:14 +02:00
Uwe L. Korn
8cc7321eb3 Unbind from source if we are not responsible for it 2013-06-28 13:27:30 +02:00
Christian Muehlhaeuser
1e1902cddd * More debug output in DbCmd_SetPlaylistRevision. 2013-06-27 21:39:21 +02:00
Uwe L. Korn
7a5b70505e Add Network Activity to ChangeLog 2013-06-27 16:13:50 +02:00
Dominik Schmidt
1637436b4f Few minor fixes/improvements for Windows installer 2013-06-27 15:32:26 +02:00
Tomahawk CI
a1cc970443 Automatic merge of Transifex translations 2013-06-27 02:16:38 +02:00
Uwe L. Korn
91d0a676ec Don't try to acquire lock if we do not have a source anymore. 2013-06-26 19:36:14 +02:00
Uwe L. Korn
968ac83906 Make selection of ControlConnection symmetric 2013-06-26 19:00:01 +02:00
Uwe L. Korn
583053661f Revert "Only display filename in JS resolver errors/as scriptname"
This reverts commit a6459f2823.
2013-06-26 14:41:19 +02:00
Uwe L. Korn
a6459f2823 Only display filename in JS resolver errors/as scriptname
* The paths are internal ones
* Shortens error messages for JS resolvers so that they will most likely not 
   overflow anymore
2013-06-26 14:31:02 +02:00
Uwe L. Korn
9eff981e66 Export JobStatusView 2013-06-26 12:19:25 +02:00
Uwe L. Korn
939de0f480 Generate QxtSslServer fancy header 2013-06-26 12:18:27 +02:00
Uwe L. Korn
d89c18d18b Update Qxt 2013-06-26 12:17:56 +02:00
Uwe L. Korn
2280f7858e Ensure that Servent still runs on all IPs with Qt 5.0 2013-06-26 12:17:21 +02:00
Uwe L. Korn
32665bd3bb Prefix HTTP API v1.0 members 2013-06-26 12:16:57 +02:00
Uwe L. Korn
15ec4cbad2 Use strongRef where strongRef requested 2013-06-26 12:10:00 +02:00
Uwe L. Korn
d0c63da0d6 Add comment to prevent others from doing the same mistake 2013-06-26 12:03:24 +02:00
Uwe L. Korn
92d58c46ce Performance++, Memory-- 2013-06-26 12:03:11 +02:00
Uwe L. Korn
6e83cbc653 Make WeakPeerHash more generic 2013-06-26 12:01:38 +02:00
Uwe L. Korn
2364a31515 Write --verbose output to Tomahawk.log 2013-06-24 22:17:08 +02:00
Uwe L. Korn
f949a49d5b Debug spam++ 2013-06-24 15:18:55 +02:00
Tomahawk CI
e6030d501e Automatic merge of Transifex translations 2013-06-24 02:16:14 +02:00
Christian Muehlhaeuser
e41e1ac1bb * Added xhochy to AUTHORS / about-dialog. 2013-06-23 22:40:28 +02:00
Uwe L. Korn
00324e0bbb Improve Includes in ExternalResolvers.h 2013-06-23 12:25:26 +02:00
Uwe L. Korn
42fa119b6b Improve includes in Resolver.h 2013-06-23 12:07:14 +02:00
Uwe L. Korn
d6c4c32581 Dpointer JSResolver 2013-06-23 11:58:26 +02:00
Uwe L. Korn
152c800ab2 Move implementations out of the header 2013-06-23 11:33:21 +02:00
Uwe L. Korn
d5b07b411f Remove unneed includes out of JSResolver.h 2013-06-23 11:29:10 +02:00
Uwe L. Korn
efa7d20821 Move JSResolverHelper to its own files 2013-06-23 11:11:37 +02:00
Uwe L. Korn
b0b705a17a Move ScriptEngine into its own files 2013-06-23 10:58:12 +02:00
Tomahawk CI
304a1bc73f Automatic merge of Transifex translations 2013-06-23 02:16:17 +02:00
Uwe L. Korn
b3ddab1320 Delete AudioEngine after MainWindow 2013-06-22 20:09:07 +02:00
Teo Mrnjavac
8778cbd41d Don't output secrets in log. 2013-06-22 12:48:17 +02:00
Teo Mrnjavac
7a992b1f08 Stay insecure if there's no other way. 2013-06-22 12:48:17 +02:00
Teo Mrnjavac
53ae795789 Debug spam++ 2013-06-22 12:48:17 +02:00
Christian Muehlhaeuser
1879101c48 * Filter out tracks with bogus mtime when trying to load recent albums. 2013-06-22 12:38:30 +02:00
Christian Muehlhaeuser
bc6194c14e * Load recent albums when SourceList is ready. 2013-06-22 12:32:33 +02:00
Christian Muehlhaeuser
18e6c0a197 * Changed tomahawkLoaded handling. 2013-06-22 12:32:33 +02:00
Christian Muehlhaeuser
d58eec71b7 * Get rid of passing tomahawkLoaded signal through TomahawkWindow and ViewManager. 2013-06-22 12:32:33 +02:00
Uwe L. Korn
8dca47d2ce Merge pull request #194 from rotzbouw/master
Disable sorting of charts in Network Activity
2013-06-21 15:28:06 -07:00
Uwe L. Korn
c9bd8b573a Do not queue ACL result if there are no sipInfos
* Temporary fix until nodeId is moved/refactored into PeerInfo out of SipInfo
2013-06-22 00:22:43 +02:00
Christian Muehlhaeuser
67a2062a30 Revert "Put "out of %1" under the big number in StatsGauge"
This reverts commit 5634f5a4ca.
2013-06-21 22:33:34 +02:00
Jason Herskowitz
8e96396b4b Merge pull request #196 from lliehu/StatsGauge-change
Put "out of %1" under the big number in StatsGauge
2013-06-21 06:06:45 -07:00
Lasse Liehu
5634f5a4ca Put "out of %1" under the big number in StatsGauge
"[number]\nout of %1" flows better than "out of %1\n[number]".
2013-06-21 15:17:51 +03:00
Tomahawk CI
6db92f0890 Automatic merge of Transifex translations 2013-06-21 02:16:54 +02:00
Christian Muehlhaeuser
05f8c212a9 This breaks too many things: Revert "Some dashboard design tweaks"
This reverts commit 22ce38adbb.
2013-06-20 19:42:13 +02:00
Christian Muehlhaeuser
6ae936dc12 * Fixed incompatible signal/slot types. 2013-06-20 19:38:15 +02:00
Jason Herskowitz
22ce38adbb Some dashboard design tweaks 2013-06-20 09:34:36 -04:00
Christian Muehlhaeuser
a79b6633de * Respect results' online state when displaying. 2013-06-20 10:01:57 +02:00
Christian Muehlhaeuser
54966422c4 * Query's resoltSorter needs to take into account the result's online state. 2013-06-20 10:01:18 +02:00
Christian Muehlhaeuser
b90c6f77b6 * Result now always returns the actual score regardless of the online state. 2013-06-20 10:00:53 +02:00
Christian Muehlhaeuser
1185a7dcdd * Pipeline only becomes ready when Database is entirely finished with init. 2013-06-20 09:50:52 +02:00
Christian Muehlhaeuser
5e5bfe2bb5 * Don't emit Database::ready() just because the FuzzyIndex became ready. 2013-06-20 09:50:23 +02:00
Christian Muehlhaeuser
98354d1693 * Make sure JSResolver always has at least the default resolver icon set. 2013-06-20 09:31:31 +02:00
Christian Muehlhaeuser
0cd593e79d * Style fixes. 2013-06-20 09:31:03 +02:00
Christian Muehlhaeuser
73ccd85a6c * Don't reset the resolver's icon if we couldn't retrieve one in ResolverAccount. 2013-06-20 09:30:21 +02:00
Tomahawk CI
fca77f41d1 Automatic merge of Transifex translations 2013-06-19 02:17:21 +02:00
Tomahawk CI
b9bdf2d050 Automatic merge of Transifex translations 2013-06-18 02:16:44 +02:00
Uwe L. Korn
5a0e7978ef Fix slot/signal namespacing 2013-06-18 00:02:42 +02:00
Jason Herskowitz
c88eed0375 Don't forget to replace Fauna font on Album pages too. 2013-06-17 13:50:01 -04:00
Jason Herskowitz
45c5713814 Try a different label font since Fauna One wasn't so great on Windows 2013-06-17 12:24:05 -04:00
Jeff Mitchell
42e92318b7 Re-mark proxy changes as needing restart 2013-06-17 09:52:02 -04:00
Jeff Mitchell
1accdb1b23 Fix compiler warning 2013-06-17 09:51:49 -04:00
Uwe L. Korn
01a5f20c9a Loosen destructor calls and empty source_ptr instead of deleting it. 2013-06-17 07:59:13 +02:00
Tomahawk CI
e7c1dafcda Automatic merge of Transifex translations 2013-06-17 02:16:42 +02:00
Christian Muehlhaeuser
c3039c3b4e * Fixed compiling Hatchet. 2013-06-17 00:51:49 +02:00
Dominik Schmidt
658d1bd351 Merge pull request #195 from tomahawk-player/viewmanagerrefactor
Allow external plugins to add view pages to the sidebar
2013-06-16 15:08:06 -07:00
Dominik Schmidt
7130504777 Allow to set icon and text for externally added generic page items without instantiating them (aka fix lazy loading for vsxu widget) 2013-06-17 00:00:26 +02:00
Dominik Schmidt
91a57c5305 Revert "Add icon() method to ViewPage api and use that and title() for sidebar items"
We can't lazy load the page when we need its members to show the sidebar
entry...

This reverts commit 1821b24391c33b2ea14fc0d094142395588075d9.
2013-06-17 00:00:26 +02:00
Dominik Schmidt
6c7bd96f30 Clean up 2013-06-17 00:00:26 +02:00
Dominik Schmidt
7dbe504a0f Add icon() method to ViewPage api and use that and title() for sidebar items 2013-06-17 00:00:26 +02:00
Uwe L. Korn
992b6a1a76 Pimple ControlConnection 2013-06-16 21:37:16 +02:00
Dominik Schmidt
d83c2c3c06 Use XInitThreads() on X11 to enable loading the visualizer module 2013-06-16 21:34:31 +02:00
Dominik Schmidt
ebf774c3ac Explicitly hide inactive view pages 2013-06-16 21:33:52 +02:00
Uwe L. Korn
d3ce480480 Pimple Msg 2013-06-16 21:13:59 +02:00
Uwe L. Korn
b64da4eb18 More include cleanups 2013-06-16 19:39:56 +02:00
Dominik Schmidt
4bd3ff8c18 Add generic page item for new view pages 2013-06-16 19:35:58 +02:00
Uwe L. Korn
f037e0823c Clean up headers 2013-06-16 19:04:26 +02:00
Uwe L. Korn
2451a0a061 Pimple BufferIoDevice 2013-06-16 19:02:08 +02:00
Uwe L. Korn
45b367677d No need for QObject on Private classes 2013-06-16 19:01:51 +02:00
Dominik Schmidt
9d532d6285 Remove stub page from ViewManager implementation 2013-06-16 18:30:38 +02:00
Teo Mrnjavac
afface1311 GenericPageItem insertion fixage. 2013-06-16 18:06:29 +02:00
Dominik Schmidt
5e40988547 Move stub page adding from appendGroups to SourcesModel ctor 2013-06-16 17:44:56 +02:00
Dominik Schmidt
d940d8436e Use QList < ViewPage* > in ViewManager to store simple view pages 2013-06-16 17:22:35 +02:00
Dominik Schmidt
e6f4c217bb Add stub page to pull out again 2013-06-16 16:50:11 +02:00
Uwe L. Korn
3d1ecc53f3 No more warnings in tomahawk code 2013-06-16 16:25:39 +02:00
Uwe L. Korn
c473efba4e Fight all compiler warnings in libtomahawk 2013-06-16 15:54:26 +02:00
Uwe L. Korn
f8ebb22c7b Add missing include 2013-06-16 13:05:41 +02:00
Uwe L. Korn
aeffe76b96 Move includes from global headers into local .cpp 2013-06-16 12:57:03 +02:00
Uwe L. Korn
e650983b60 Move implementations out of the header 2013-06-16 12:56:38 +02:00
Uwe L. Korn
fc24175cca Remove not needed includes in Query.h 2013-06-16 12:32:14 +02:00
Uwe L. Korn
c81d1f2ede Remove not needed includes 2013-06-16 12:00:19 +02:00
Uwe L. Korn
06417a2be0 Add missing include for OSX 2013-06-16 11:44:48 +02:00
Uwe L. Korn
a314d8b638 Finish Connection pimpeling 2013-06-16 11:43:32 +02:00
Uwe L. Korn
0041a9f850 Make access to Connection->nodeid thread-safe 2013-06-16 11:21:34 +02:00
Uwe L. Korn
f9738dba16 If a ControlConnection is not anymore responsible for a source, it should not touch it. 2013-06-16 11:17:05 +02:00
Uwe L. Korn
fbe434a4d5 Move outbound, ready, onceonly into ConnectionPrivate 2013-06-16 10:52:27 +02:00
Christian Muehlhaeuser
16d2f33adc * Fixed compiling. 2013-06-16 10:46:23 +02:00
Tomahawk CI
30ab94b2bf Automatic merge of Transifex translations 2013-06-16 02:16:44 +02:00
Uwe L. Korn
ad68b7fb04 Pimple SipStatusMessage 2013-06-15 22:02:16 +02:00
Uwe L. Korn
eeab7332ad Rename Tomahawk::ACL -> Tomahawk::ACLStatus 2013-06-15 22:01:20 +02:00
Uwe L. Korn
9e6263856d Less (global) includes in/of SipPlugin.h 2013-06-15 21:39:11 +02:00
Uwe L. Korn
b5cce70b4d Move peerport and msg into ConnectionPrivate 2013-06-15 21:04:46 +02:00
Uwe L. Korn
ce11d3aec3 Tomahawk::ACL -> Tomahawk::ACL::Type 2013-06-15 20:52:43 +02:00
Uwe L. Korn
c7dfe80c82 Move m_name into ConnectionPrivate 2013-06-15 20:36:13 +02:00
Uwe L. Korn
88742ba1d5 Remove not needed ControlConnection include 2013-06-15 20:25:36 +02:00
Uwe L. Korn
4a9ba6efa5 Pimple Source, remove some headers from Source.h and Connection.h 2013-06-15 20:22:25 +02:00
Uwe L. Korn
d3865cc306 Move all implementations out of the header 2013-06-15 16:14:24 +02:00
Uwe L. Korn
619d8a4c6d Remove unused include 2013-06-15 16:14:23 +02:00
Uwe L. Korn
7b654bdd24 Unprefix Qt includes 2013-06-15 16:14:23 +02:00
Jason Herskowitz
bd84125c85 More padding in breadcrumb. Don't yet know how to make font bigger. 2013-06-15 08:17:48 -04:00
Uwe L. Korn
659907856e Remove unused qjson includes and member 2013-06-15 14:13:35 +02:00
Uwe L. Korn
bd24819cbf Move private members of Connection into a Dpointer 2013-06-15 13:56:37 +02:00
Uwe L. Korn
2f570ef161 Set nodeid directly, not as a property 2013-06-15 12:54:40 +02:00
Christian Muehlhaeuser
9d702e0189 * Draw a horizontal splitter. 2013-06-15 12:19:28 +02:00
Christian Muehlhaeuser
a6370d7282 * Adjust the splitter handle width. 2013-06-15 12:18:48 +02:00
Christian Muehlhaeuser
2304d2380a * FlexibleView's GridView looks nicer with black background. 2013-06-15 11:31:54 +02:00
Christian Muehlhaeuser
633350660e * Change AudioEngine's state before emitting the signal. 2013-06-15 11:25:49 +02:00
Christian Muehlhaeuser
4d7efe82a2 * Trim the artist biography before showing it. 2013-06-15 11:11:55 +02:00
Christian Muehlhaeuser
04a2be8398 * Fixed HistoryWidget's header color. 2013-06-15 10:34:00 +02:00
Christian Muehlhaeuser
9cb31e4ec6 * Dashboard should use the vanilla InfoBar. 2013-06-15 10:33:43 +02:00
Christian Muehlhaeuser
0b943598f3 * Made deprecated InfoBar look the same as the other headers. 2013-06-15 10:33:22 +02:00
Christian Muehlhaeuser
9a0089b2a1 * New layout for search page. 2013-06-15 09:52:29 +02:00
Christian Muehlhaeuser
8b29b86bf4 * Set captions to non-bold in .ui. 2013-06-15 09:52:10 +02:00
Christian Muehlhaeuser
60296e45f3 * Set captions to non-bold in .ui. 2013-06-15 09:48:21 +02:00
Christian Muehlhaeuser
d54e695b91 * Fixed inbox header color. 2013-06-15 07:28:52 +02:00
Christian Muehlhaeuser
13c9236328 * Removed .ui font definitions. 2013-06-15 07:24:55 +02:00
Christian Muehlhaeuser
402b6e1e5f * New layout for Dashboard. 2013-06-15 07:23:54 +02:00
Christian Muehlhaeuser
e6b7a577e2 * Nitpicky fix. 2013-06-15 07:23:40 +02:00
Christian Muehlhaeuser
f22637dda2 * Fixed albums area on artist page growing too big. 2013-06-15 05:16:54 +02:00
Christian Muehlhaeuser
a939777a94 * New layout for Album page. 2013-06-15 05:11:57 +02:00
Christian Muehlhaeuser
efd21c5316 * Clean up for Artist page. 2013-06-15 05:11:29 +02:00
Christian Muehlhaeuser
ef62c8f7ce * Clean up for Track page. 2013-06-15 05:11:07 +02:00
Christian Muehlhaeuser
6a3b03c064 * Moved Track page's font definitions to .ui file. 2013-06-15 04:05:46 +02:00
Christian Muehlhaeuser
93c696e2b4 * Fixed Artist page's header size and moved font definitions to .ui file. 2013-06-15 04:05:16 +02:00
Jason Herskowitz
7befdb9594 More font size tweaks 2013-06-14 20:35:22 -04:00
Tomahawk CI
4873ebcb0b Automatic merge of Transifex translations 2013-06-15 02:16:47 +02:00
Jason Herskowitz
f7acb8d51c Update all the Spotify icons to their new logo, except the one in the resolvers which is apparently the only one that matters. 2013-06-14 17:23:09 -04:00
Jason Herskowitz
df8f654075 Fix track number color 2013-06-14 17:00:04 -04:00
Thierry Goeckel
e51161e74b Remove newline. 2013-06-14 22:43:29 +02:00
Thierry Goeckel
5d8eb1911c Style fix. 2013-06-14 22:42:49 +02:00
Thierry Goeckel
ecd1b0398d Merge remote-tracking branch 'upstream/master' 2013-06-14 22:40:37 +02:00
Jason Herskowitz
cdd75599e8 Bump up bio font a couple of point sizes 2013-06-14 16:38:51 -04:00
Thierry Goeckel
6a7d0dfd27 Don't sort alphabetically here. Makes sense as it is in the source code (week->month->year->overall).
Now someone make week the default. :p
2013-06-14 22:38:30 +02:00
Jason Herskowitz
6d806e2fb1 Pretty up the gauge a bit more 2013-06-14 14:54:52 -04:00
Jason Herskowitz
6b4ac0a3c9 More artist & track design plus some updated placeholder icons 2013-06-14 14:46:57 -04:00
Jason Herskowitz
32952b6a6b Unbreak OSX 2013-06-14 12:52:44 -04:00
Uwe L. Korn
43c3ced70f Remove unneeded include 2013-06-14 17:55:29 +02:00
Uwe L. Korn
aded202c8b Correctly handle/display the different states of PeerInfos 2013-06-14 16:46:07 +02:00
Uwe L. Korn
f842792331 Use deleteLater so that peerinfo_ptr can be used in different threads. 2013-06-14 16:36:38 +02:00
Christian Muehlhaeuser
c3c0208e55 * Fixed page fonts. 2013-06-14 16:04:44 +02:00
Jason Herskowitz
305fcba693 More Artist page design. 2013-06-14 09:52:52 -04:00
Christian Muehlhaeuser
f6ceac68b0 * Fixed ModeHeader's background color. 2013-06-14 14:24:48 +02:00
Christian Muehlhaeuser
d6479d0f5e * Fixed Track page. 2013-06-14 13:14:26 +02:00
Christian Muehlhaeuser
40035881b8 * Set the proper background color for the albums grid on the Artist page. 2013-06-14 12:49:34 +02:00
Christian Muehlhaeuser
db96d8e460 * Got rid of cover shadow / gradient. 2013-06-14 12:49:02 +02:00
Uwe L. Korn
e976774d52 Only invoke Closure if receiver still exists 2013-06-14 12:23:35 +02:00
Christian Muehlhaeuser
f3b028d020 * Moved highlight color roles into TomahawkStyle. 2013-06-14 11:57:26 +02:00
Christian Muehlhaeuser
d6344ea707 * Use QPalette::Foreground for drawing AlbumItemDelegate's position figure. 2013-06-14 11:52:26 +02:00
Christian Muehlhaeuser
ff641dfefc * Use new color roles on Artist page. 2013-06-14 11:52:26 +02:00
Christian Muehlhaeuser
1e5fa4d716 * StatsGauge retrieves color palette from TomahawkStyle. 2013-06-14 11:52:26 +02:00
Christian Muehlhaeuser
542b178ece * Fixed TomahawkUtils::prepareStyleOption(). 2013-06-14 11:52:26 +02:00
Christian Muehlhaeuser
9038992758 * Added new color roles to TomahawkStyle. 2013-06-14 11:52:26 +02:00
Uwe L. Korn
13db6a6b90 Keep a local strong reference to prevent deleting of the current object 2013-06-14 11:45:17 +02:00
Uwe L. Korn
a334c87e17 Do not rely on the object to be removed to be deleted after the callback 2013-06-14 10:35:22 +02:00
Christian Muehlhaeuser
e79935c1ca * A few more tweaks to artist page. 2013-06-14 02:19:56 +02:00
Tomahawk CI
5238105781 Automatic merge of Transifex translations 2013-06-14 02:16:47 +02:00
Christian Muehlhaeuser
5ac69fe411 * Fixed link color in header. 2013-06-14 02:00:54 +02:00
Christian Muehlhaeuser
b4d45ca555 * WIP: Artist page. 2013-06-14 01:57:40 +02:00
Christian Muehlhaeuser
8adcb0a111 * Got rid of obsolete TomahawkStyle colors. 2013-06-14 01:56:43 +02:00
Christian Muehlhaeuser
5d0cd075c3 * Cleaned up TomahawkStyle. 2013-06-14 01:56:05 +02:00
Christian Muehlhaeuser
7da87d238e * Added regular version of Titillium as resource. 2013-06-14 01:55:40 +02:00
Jason Herskowitz
baa1413041 Use a font that also has bold. WIP. 2013-06-13 19:35:11 -04:00
Jason Herskowitz
2dbd92c50f A bunch of styling to the Arist Page. WIP. 2013-06-13 19:11:27 -04:00
Christian Muehlhaeuser
e441577776 * Use TomahawkStyle::HEADER_TEXT for captions. 2013-06-13 16:29:56 +02:00
Christian Muehlhaeuser
3417a0d5e7 * Use Titillium Web for the labels on ArtistInfoWidget. 2013-06-13 14:40:07 +02:00
Christian Muehlhaeuser
98203a819e * Load fonts on startup. 2013-06-13 14:27:25 +02:00
Christian Muehlhaeuser
f3643eebba * TomahawkStyle::loadFonts() auto-loads all fonts in the data/fonts/ resource. 2013-06-13 14:27:04 +02:00
Christian Muehlhaeuser
25a5c4a0dc * Added example ttf font. 2013-06-13 14:26:31 +02:00
Christian Muehlhaeuser
112ef8bbd6 * Further tweaks to artist-page layout. 2013-06-13 11:41:19 +02:00
Christian Muehlhaeuser
745ad28ae2 * Style fixes. 2013-06-13 11:40:51 +02:00
Christian Muehlhaeuser
11d41419d9 * Make boxes entirely transparent. 2013-06-13 11:40:39 +02:00
Christian Muehlhaeuser
b25cc538f7 * When a track starts playing, check if we need to update the sidebar's speaker-icon. 2013-06-13 10:25:59 +02:00
Christian Muehlhaeuser
8f91f7d18f * Implemented LovedTracksItem's isBeingPlayed(). 2013-06-13 10:25:28 +02:00
Christian Muehlhaeuser
1fdd485207 * Style fixes in GenericPageItems. 2013-06-13 10:25:04 +02:00
Christian Muehlhaeuser
fc4ab3a262 * Style fixes in SourcesModel. 2013-06-13 10:24:31 +02:00
Christian Muehlhaeuser
e9eb1874e1 * Style fixes in SourceTreeView. 2013-06-13 10:23:40 +02:00
Christian Muehlhaeuser
6ea6628ff0 * Implemented Flexible(Tree)View's isBeingPlayed(). 2013-06-13 10:23:19 +02:00
Christian Muehlhaeuser
357d9b13d5 * Emit a signal when the currentTrackPlaylist changes in AudioEngine. 2013-06-13 10:18:36 +02:00
Christian Muehlhaeuser
e5bf528fa9 * Removed obsolete png. 2013-06-13 09:07:01 +02:00
Christian Muehlhaeuser
623f764ee4 * Use TomahawkStyle's methods to apply stylesheets. 2013-06-13 09:06:43 +02:00
Christian Muehlhaeuser
a11c90c66b * Moved stylesheet methods into TomahawkStyle. 2013-06-13 09:04:41 +02:00
Tomahawk CI
b93532dd64 Automatic merge of Transifex translations 2013-06-13 02:17:08 +02:00
Christian Muehlhaeuser
b0959b4b68 * Fixed RecentPlaylistsModel not respecting the set limit. 2013-06-12 13:35:33 +02:00
Christian Muehlhaeuser
86422655ef * Auto-resize PlaylistWidget. 2013-06-12 13:35:11 +02:00
Christian Muehlhaeuser
9d4280493e * Make hover-glow subtler. 2013-06-12 13:12:44 +02:00
Christian Muehlhaeuser
bcc17ded53 * Give Dashboard a header. 2013-06-12 13:00:02 +02:00
Christian Muehlhaeuser
74a027a936 * Tweak page and header colors. 2013-06-12 12:59:09 +02:00
Christian Muehlhaeuser
45d999c8d6 * Draw divider below BasicHeader. 2013-06-12 12:58:49 +02:00
Christian Muehlhaeuser
42863aac04 * Show 'kbps' next to the bitrate. 2013-06-12 11:43:11 +02:00
Christian Muehlhaeuser
5cd4a25969 * Fixed HistoryWidget's extra header. 2013-06-12 11:36:24 +02:00
Christian Muehlhaeuser
596da1628e * Make FlexibleView use new header style - to be consolidated. 2013-06-12 11:36:07 +02:00
Christian Muehlhaeuser
201c5f3524 * Init FilterHeader with parent. 2013-06-12 11:35:40 +02:00
Christian Muehlhaeuser
38154ea460 * Re-enable TreeView for collections. 2013-06-12 11:28:59 +02:00
Christian Muehlhaeuser
82ee774788 * FlexibleHeader needs to set its own size. 2013-06-12 11:28:12 +02:00
Christian Muehlhaeuser
cdf8a59c42 * Compact BasicHeader. 2013-06-12 11:27:48 +02:00
Christian Muehlhaeuser
16bd317919 * Added ModeHeader widget. 2013-06-12 11:27:19 +02:00
Christian Muehlhaeuser
5fdcd6c690 * Show a default track cover until we retrieved the proper, new one. 2013-06-12 09:23:14 +02:00
Christian Muehlhaeuser
890f14a23c * Double-clicking in ColumnView opens the corresponding page. 2013-06-12 09:15:42 +02:00
Christian Muehlhaeuser
bb6af87b33 * A few ColumnItemDelegate fixes. 2013-06-12 09:02:57 +02:00
Christian Muehlhaeuser
c00adfb347 * Don't show empty labels in preview-widget. 2013-06-12 07:39:45 +02:00
Christian Muehlhaeuser
be455fd7d2 * Show more info in the preview-widget. 2013-06-12 07:35:29 +02:00
Christian Muehlhaeuser
b9cd71d919 * Removed header from ColumnView. 2013-06-12 07:35:10 +02:00
Christian Muehlhaeuser
b6cfe162aa * Reset the model before applying a filter. 2013-06-12 06:21:32 +02:00
Christian Muehlhaeuser
e3302a1365 * Use FlexibleTreeViews for showing collections. 2013-06-12 06:21:32 +02:00
Christian Muehlhaeuser
5e3bdd51c2 * Updated CMakeLists.txt. 2013-06-12 06:21:32 +02:00
Christian Muehlhaeuser
f669e142dc * Added FlexibleTreeView. 2013-06-12 06:21:32 +02:00
Christian Muehlhaeuser
4cc3b850ff * Added ColumnViewPreviewWidget. 2013-06-12 06:21:32 +02:00
Christian Muehlhaeuser
7c1ac3f75d * Added ColumnView. 2013-06-12 06:21:32 +02:00
Christian Muehlhaeuser
d5eec1ae8f * Added ColumnItemDelegate. 2013-06-12 06:21:32 +02:00
Christian Muehlhaeuser
00eb60b41a * Disconnect from previous query correctly. 2013-06-12 06:21:32 +02:00
Christian Muehlhaeuser
fe1bd649bd * Style fix. 2013-06-12 06:21:31 +02:00
Christian Muehlhaeuser
3ab8a432d9 * Added custom UserRoles to access model's data. 2013-06-12 06:21:31 +02:00
Christian Muehlhaeuser
2bd3061516 * PlayableItem::forceUpdate() forces a repaint by emitting dataChanged(). 2013-06-12 06:21:31 +02:00
Christian Muehlhaeuser
ccf8141353 * Caution for upcoming changes. 2013-06-12 06:21:31 +02:00
Christian Muehlhaeuser
786862f5e5 * Style fixes for Servent. 2013-06-12 06:21:31 +02:00
Tomahawk CI
fa35455b00 Automatic merge of Transifex translations 2013-06-12 02:16:52 +02:00
Tomahawk CI
8bc4c8a6dc Automatic merge of Transifex translations 2013-06-11 02:17:08 +02:00
Uwe L. Korn
6ab30bd7af Do not squash Peers with no nodeid 2013-06-10 17:36:54 +02:00
Uwe L. Korn
9500f5e593 Do not try to access NULL-pointers instead search the whole hash for holes 2013-06-10 17:36:54 +02:00
Hugo Lindström
580cb8032f TWK-1389: Utilize private sessions, if private 2013-06-10 16:19:12 +02:00
Hugo Lindström
063f0653ac TWK-1377: Space Encoding on Imported M3Us 2013-06-10 16:19:12 +02:00
Hugo Lindström
71651f62b1 Stylefix 2013-06-10 16:19:12 +02:00
Uwe L. Korn
df7550d73b Group peers by (Account, nodeid) in the Diagnostics Dialog, add nodeid info 2013-06-10 15:44:01 +02:00
Uwe L. Korn
25d6f59cc3 Move all sockets to the Servent thread. 2013-06-10 15:42:15 +02:00
Uwe L. Korn
f805b267fd Speed up connecting by sorting the SipInfos 2013-06-10 14:40:33 +02:00
Uwe L. Korn
051edb079c Documentation++, make ConnectionManager CTOR private 2013-06-10 14:10:17 +02:00
Uwe L. Korn
44580cdb3a Better debug spam on column restore 2013-06-10 11:41:34 +02:00
Christian Muehlhaeuser
02f65f4422 * Tweak timeouts for the lazy-lists drop-down. 2013-06-10 10:56:20 +02:00
Christian Muehlhaeuser
ec70b708d5 * Style fixes. 2013-06-10 10:56:20 +02:00
Uwe L. Korn
9578555042 Do not kill used ControlConnection
* Debug spam ++
2013-06-10 10:43:20 +02:00
Christian Muehlhaeuser
4a25055eda * Don't print out cache-value in log. 2013-06-10 10:38:24 +02:00
Christian Muehlhaeuser
e70efa5fd0 * Delegates use the base-class impls for painting / handling. 2013-06-10 10:38:24 +02:00
Christian Muehlhaeuser
84193fdf2c * Views handle leaveEvents now and inform the delegate to update itself when required. 2013-06-10 10:38:24 +02:00
Christian Muehlhaeuser
29a2c1e904 * Handle source-icon and info-icon painting in the base delegate class. 2013-06-10 10:38:24 +02:00
Christian Muehlhaeuser
29c08dede7 * Use TrackView's setPlaylistItemDelegate across Tomahawk. 2013-06-10 10:38:24 +02:00
Christian Muehlhaeuser
fc5a2fefc7 * Moved some page-impl out of the headers. 2013-06-10 10:38:24 +02:00
Christian Muehlhaeuser
678ba4f403 * Fixed secondary text's color in PlaylistDelegate & PlaylistLargeItemDelegate. 2013-06-10 10:38:24 +02:00
Tomahawk CI
8246d9903a Automatic merge of Transifex translations 2013-06-10 02:16:42 +02:00
Uwe L. Korn
7ee90244bd Copy internal hash instead of trying to make a non-valid assignment 2013-06-09 23:42:34 +02:00
Uwe L. Korn
5b0493bd6c Self cleaning peerInfo cache, fixes TWK-1396 2013-06-09 23:37:10 +02:00
Uwe L. Korn
9e24fc7ddc No need for a pointer here 2013-06-09 19:46:31 +02:00
Uwe L. Korn
2cbfcc7952 Proxy the QtConncurrent call to a static function to preserve a strong ref 2013-06-09 19:24:41 +02:00
Uwe L. Korn
fcfdea2d14 Less strong refs to ConnectionManagers if they are not used 2013-06-09 17:32:37 +02:00
Uwe L. Korn
1d3dd67bf3 Reconnect if ACL decision took too long 2013-06-09 11:47:08 +02:00
Christian Muehlhaeuser
0b453df15c * Fixed coding style in AudioEngine. 2013-06-09 03:33:24 +02:00
Tomahawk CI
91b03eff33 Automatic merge of Transifex translations 2013-06-09 02:16:48 +02:00
Uwe L. Korn
08b227bbc8 Remove unused defines 2013-06-09 01:02:45 +02:00
Uwe L. Korn
e06cb12630 Lazyload Network Activities 2013-06-09 00:19:01 +02:00
Christian Muehlhaeuser
a31f4c770a * Moved artist / track labels out of the PlayableCover. 2013-06-08 14:24:37 +02:00
Christian Muehlhaeuser
4c46425cbb * Don't consider artists with a playcount of 1 as part of the charts. 2013-06-08 12:47:26 +02:00
Christian Muehlhaeuser
073cbf8e03 * Don't consider tracks with a playcount of 1 as part of the charts. 2013-06-08 12:29:51 +02:00
Christian Muehlhaeuser
3824034113 * Added gauge for track chart position. 2013-06-08 12:08:43 +02:00
Christian Muehlhaeuser
6c92168a48 * Shrink font size for bigger figures. 2013-06-08 12:08:17 +02:00
Christian Muehlhaeuser
b47761982e * Expose track stats in Track(-Data). 2013-06-08 12:08:01 +02:00
Christian Muehlhaeuser
c85665fc8a * Read chart position when loading TrackStats. 2013-06-08 12:07:32 +02:00
Christian Muehlhaeuser
9ef6ebf07c * Unspectacular performance improvement. 2013-06-08 12:07:10 +02:00
Christian Muehlhaeuser
ae393edfb1 * Correctly set initial alternating-row-color setting, so we don't rely on the proxymodel activating it for us on filling. 2013-06-08 11:47:25 +02:00
Christian Muehlhaeuser
87ea3d3dbf * Style the extra header a bit. 2013-06-08 11:04:33 +02:00
Christian Muehlhaeuser
a2328a237e * Get rid of the header gradient. 2013-06-08 11:04:18 +02:00
Christian Muehlhaeuser
074417517d * Slightly different tooltips for the gauges. 2013-06-08 10:21:58 +02:00
Christian Muehlhaeuser
e89ff88948 * SourceItem now uses HistoryWidget to display recently played tracks of Sources. 2013-06-08 10:21:44 +02:00
Christian Muehlhaeuser
8ddc30867b * Forgot to add HistoryWidget to CMakeLists.txt. 2013-06-08 10:21:22 +02:00
Christian Muehlhaeuser
2fb0c5fda8 * HistoryWidget is a FlexibleView with date range input fields as an extra header. 2013-06-08 10:21:06 +02:00
Christian Muehlhaeuser
00de575744 * RecentlyPlayedModel can now deal with date ranges. 2013-06-08 10:20:24 +02:00
Christian Muehlhaeuser
99e331d8cd * DbCmd_PlaybackHistory can now deal with date ranges. 2013-06-08 10:20:01 +02:00
Christian Muehlhaeuser
80cc6b45dd * PlayableModel::ensureResolved() passes queries in one batch to the Pipeline now. 2013-06-08 10:19:35 +02:00
Christian Muehlhaeuser
cee71b9b08 * QueueView waits for the Pipeline to become ready. 2013-06-08 10:19:01 +02:00
Christian Muehlhaeuser
a900048c8a * FlexibleView now can be initialized with an additional header widget. 2013-06-08 10:17:53 +02:00
Christian Muehlhaeuser
b16a18cfbb * Emit a signal when the Pipeline gets started. 2013-06-08 10:17:23 +02:00
Christian Muehlhaeuser
e31d6ac0a7 * Extra (optional) CTOR param for RecentlyPlayedModel: maxItems. 2013-06-08 06:08:23 +02:00
Christian Muehlhaeuser
55ad6c2a6a * Style for the vertical scrollbars. 2013-06-08 06:07:54 +02:00
Christian Muehlhaeuser
b89ca65c51 * WelcomeWidget => Dashboard. 2013-06-08 06:07:07 +02:00
Christian Muehlhaeuser
ae1d641903 * Renamed and pagified Dashboard. 2013-06-08 06:06:19 +02:00
Christian Muehlhaeuser
bc72050fb0 * Don't enforce resolving of similar tracks. 2013-06-08 05:12:07 +02:00
Christian Muehlhaeuser
a9ba1ee1e1 * Style clean up. 2013-06-08 05:11:55 +02:00
Christian Muehlhaeuser
3397561af1 * Don't enforce resolving of incoming Artist's top-tracks. 2013-06-08 05:03:41 +02:00
Tomahawk CI
261d9b1203 Automatic merge of Transifex translations 2013-06-08 02:16:49 +02:00
Uwe L. Korn
6c69aa4822 Dpointerize PeerInfo 2013-06-07 19:41:48 +02:00
Uwe L. Korn
72a54844d8 Dpointerize NetworkActivityWidget 2013-06-07 19:41:29 +02:00
Uwe L. Korn
494e75bff1 Introduce the Dpointer concept to ConnectionManager 2013-06-07 16:35:29 +02:00
Uwe L. Korn
26dbc9d1cc Delete d_ptr in Servent desctructor 2013-06-07 15:49:15 +02:00
Uwe L. Korn
b6e0f77911 Add Boost_INCLUDE_DIR and make less usage of boost in headers
* Make Servent member more private
2013-06-07 12:36:37 +02:00
Christian Muehlhaeuser
e193524cd3 * Made StatsGauge animation smooth and use QProgressBar's own inverted state handling. 2013-06-07 12:17:58 +02:00
Christian Muehlhaeuser
b93e5c90c0 * Fixed a bunch of compiler warnings. 2013-06-07 11:55:32 +02:00
Christian Muehlhaeuser
3c95e31ba0 * Init needs to wait for InfoSystem to be ready. 2013-06-07 11:55:12 +02:00
Christian Muehlhaeuser
13ae09218d * InfoSystem now emits ready() when init is done. 2013-06-07 11:54:48 +02:00
Christian Muehlhaeuser
9e89e4aa4c * Fixed typos. 2013-06-07 11:33:50 +02:00
Christian Muehlhaeuser
56632f10bd * CreateIndex isn't the right place to connect signals. 2013-06-07 11:33:21 +02:00
Christian Muehlhaeuser
2e6ae760a1 * Fix Logger with Qt5. 2013-06-07 11:33:06 +02:00
Christian Muehlhaeuser
21d4f2b83a * Fixed creating QPixmaps in the wrong thread. 2013-06-07 11:27:58 +02:00
Christian Muehlhaeuser
b291788a2e * Fixed Accounts stuff causing QLayout warning. 2013-06-07 11:27:15 +02:00
Christian Muehlhaeuser
412fb5b7bb * Fixed broken png causing libpng warning. 2013-06-07 11:26:52 +02:00
Christian Muehlhaeuser
4d64ddf317 * Set pen color correctly for Inbox. 2013-06-07 10:44:58 +02:00
Christian Muehlhaeuser
99deba6710 * Adapted Track page to new style. 2013-06-07 10:32:56 +02:00
Christian Muehlhaeuser
c67532c588 * Fixed Artist page. 2013-06-07 10:32:19 +02:00
Christian Muehlhaeuser
aa7a69b6cc * Adapt Album page to new style. 2013-06-07 10:31:57 +02:00
Christian Muehlhaeuser
7557696d48 * Offer inverted gauge animations. 2013-06-07 10:31:31 +02:00
Christian Muehlhaeuser
e5b4caee2f * Changed PAGE_BACKGROUND color. 2013-06-07 10:31:08 +02:00
Christian Muehlhaeuser
abf4314eaf * Don't try animating with bogus values. 2013-06-07 09:12:31 +02:00
Christian Muehlhaeuser
02d3f7c55f * Start animating the gauge with value 1. 2013-06-07 09:09:29 +02:00
Christian Muehlhaeuser
aca501096f * Chart values need to be always initialized. 2013-06-07 09:09:04 +02:00
Christian Muehlhaeuser
47a4d549af * Added StatsGauge. 2013-06-07 09:00:07 +02:00
Christian Muehlhaeuser
3383a93e4b * Work on artist page. Better layout / design? 2013-06-07 09:00:07 +02:00
Christian Muehlhaeuser
3c0f65c6fa * Properly set pen before painting figure ovals. 2013-06-07 09:00:07 +02:00
Christian Muehlhaeuser
2bceddaa1c * Fixed pen settings for drawBackgroundAndNumbers. 2013-06-07 09:00:07 +02:00
Christian Muehlhaeuser
096331016e * TrackView should restore externally set alternating-row-color setting. 2013-06-07 09:00:07 +02:00
Christian Muehlhaeuser
162610bae5 * Mutex protect TrackData. 2013-06-07 09:00:07 +02:00
Christian Muehlhaeuser
8b68e83827 * Load artist-stats. 2013-06-07 09:00:06 +02:00
Tomahawk CI
3a8a5c7d79 Automatic merge of Transifex translations 2013-06-07 02:17:06 +02:00
Christian Muehlhaeuser
bbe1e76470 Merge pull request #193 from f1ori/master
Fix signature of signal
2013-06-06 01:49:49 -07:00
Florian Richter
47dcb9f170 Fix signal signature 2013-06-06 10:19:56 +02:00
Tomahawk CI
533b99d838 Automatic merge of Transifex translations 2013-06-06 02:17:09 +02:00
Christian Muehlhaeuser
2427382830 * When redirecting a request, make sure HEAD ops don't become a GET. 2013-06-05 21:32:09 +02:00
Christian Muehlhaeuser
c2d9f1f441 * Style fixes. 2013-06-05 20:46:35 +02:00
Christian Muehlhaeuser
cac24eacd3 * Cache avatar instead of trying to get it from the cache over and over. 2013-06-05 20:46:22 +02:00
Christian Muehlhaeuser
7053c50067 * Style fixes and removed spamy logging from TomahawkCache. 2013-06-05 20:27:10 +02:00
Uwe L. Korn
725486a4e4 Use peerName instead of peerAddress
* If connecting to a non-IP host, peerAddress is an empty string,
  peerName contains the DNS name
2013-06-05 18:56:59 +02:00
Christian Muehlhaeuser
6748d37a8b * The mutex isn't needed. 2013-06-05 09:34:41 +02:00
Christian Muehlhaeuser
a6be13b80c * Style fixes for NetworkActivityWidget. 2013-06-05 09:23:44 +02:00
Christian Muehlhaeuser
875d9f4d8f * Fixed building without breakpad. Thanks to Dinar Valeev. 2013-06-05 09:15:39 +02:00
Christian Muehlhaeuser
d6ae691edc * Style fixes for build system. 2013-06-05 09:15:07 +02:00
Christian Muehlhaeuser
e1a2b4baa0 * Style fixes for build system. 2013-06-05 03:56:23 +02:00
Tomahawk CI
fa0c502a44 Automatic merge of Transifex translations 2013-06-05 02:16:57 +02:00
Uwe L. Korn
18e1340de9 Do not delete connection if PeerInfo disappers during connect 2013-06-04 21:26:01 +02:00
Uwe L. Korn
8610c156eb Hide InfoBar and report isBeingPlayed status. 2013-06-04 21:25:37 +02:00
Uwe L. Korn
91fc20d0c8 NetworkActivity now features Charts 2013-06-04 20:39:58 +02:00
Uwe L. Korn
b1f8993e9c Add NetworkCharts Database Command 2013-06-04 20:39:58 +02:00
Uwe L. Korn
bd054438ad Add empty NetworkActivity page 2013-06-04 20:39:57 +02:00
Uwe L. Korn
6ab461a869 Add network-activity.svg to resources 2013-06-04 20:39:57 +02:00
Tomahawk CI
1188749e0a Automatic merge of Transifex translations 2013-06-04 02:16:42 +02:00
Uwe L. Korn
df9782822b Show DBID/nodeId in DiagnosticsDialog 2013-06-03 16:17:59 +02:00
Uwe L. Korn
bec4224048 Remove hack to avoid resetting firstMessage on parallel connection 2013-06-03 14:55:04 +02:00
Christian Muehlhaeuser
83d49a6324 * Improvements to item-delegates. 2013-06-03 05:41:49 +02:00
Christian Muehlhaeuser
56eba6d054 * Style fixes for FdoNotifyPlugin. 2013-06-03 03:30:01 +02:00
Christian Muehlhaeuser
0bb1dd6245 Merge pull request #190 from f1ori/autogenerate-dbus-mpris
autogenerate dbus adaptors for mpris
2013-06-02 18:22:24 -07:00
Tomahawk CI
943741fc27 Automatic merge of Transifex translations 2013-06-02 02:16:42 +02:00
Christian Muehlhaeuser
4947ebf53e Merge pull request #189 from f1ori/gnome-media-keys
listen to media key events of gnome settings daemon
2013-06-01 09:06:09 -07:00
Florian Richter
82432968e9 listen to media key events of gnome settings daemon
* add shortcuthandler, which listens to the media key event
  provided by the gnome settings daemon via dbus
  (https://github.com/GNOME/gnome-settings-daemon/blob/master/plugins/media-keys/README.media-keys-API)
* fixes TWK-983
2013-06-01 17:55:05 +02:00
Christian Muehlhaeuser
8f70227bf8 * Fixed liben comment. 2013-06-01 17:35:14 +02:00
Christian Muehlhaeuser
9ddfc665af Merge pull request #192 from krf/work
Fix some compiler/runtime warnings
2013-06-01 08:34:46 -07:00
Teo Mrnjavac
dee68de58a Bump Echonest version. 2013-06-01 13:14:38 +02:00
Tomahawk CI
9832f50b27 Automatic merge of Transifex translations 2013-06-01 02:16:46 +02:00
Kevin Funk
b6de19522a Fix some compiler/runtime warnings 2013-06-01 00:03:00 +02:00
Uwe L. Korn
44e0c538f7 Merge pull request #191 from tomahawk-player/upower-integration
Add support for UPower
2013-05-31 13:07:17 -07:00
Uwe L. Korn
bb450be0e7 Delay resuming as we will most likely fail connecting directly 2013-05-31 22:06:35 +02:00
Uwe L. Korn
ca6653b7e0 Add support for UPower 2013-05-31 19:07:33 +02:00
Florian Richter
15f6ea8543 use autogenerated dbus interface for fdonotify 2013-05-31 17:51:44 +02:00
Jason Herskowitz
a63d94850b Add Network Activity icon for sidebar 2013-05-31 10:05:57 -04:00
Uwe L. Korn
0e3eb7ee46 Fix time in spelling 2013-05-31 16:57:42 +03:00
Uwe L. Korn
2db81074a8 Add SIP improvements to ChangeLog 2013-05-31 15:56:16 +02:00
Florian Richter
a8980f7c32 autogenerate dbus adaptors for mpris 2013-05-31 15:39:14 +02:00
Tomahawk CI
d9028da6ae Automatic merge of Transifex translations 2013-05-31 02:16:45 +02:00
Jeff Mitchell
42880a3c97 Add hatchet plugin to master 2013-05-30 15:29:04 -04:00
Christian Muehlhaeuser
7ba846aad3 * Try simpler OverlayWidget layout. 2013-05-30 04:24:29 +02:00
Christian Muehlhaeuser
5afed57070 * Fixed AnimatedSpinner flickering when resizing window. 2013-05-30 04:24:29 +02:00
Christian Muehlhaeuser
67e30668dd * Disable / enable alternate row colors when required. 2013-05-30 04:24:29 +02:00
Tomahawk CI
ba44bf1030 Automatic merge of Transifex translations 2013-05-30 02:17:11 +02:00
Teo Mrnjavac
bcd1069d92 Only show the mark as listened action if unlistened tracks are selected. 2013-05-29 19:05:31 +02:00
Christian Muehlhaeuser
8ebd3d67e8 * x.y.999 is invalid on OSX. 2013-05-29 15:55:47 +02:00
Teo Mrnjavac
63bd256bc4 Replaced GenericSelect with a proper dbcmd.
Consequences:
* we avoid the use of QObject properties, which are not thread safe
* we get social actions right away, without having to wait for
  every track's loadSocialActions to finish
2013-05-29 15:34:37 +02:00
Uwe L. Korn
90ba7eae5b Merge pull request #184 from tomahawk-player/feature/sip-multiple-ip-addresses
Let SIP handle multiple IP Addresses per client
2013-05-29 05:06:19 -07:00
Teo Mrnjavac
f9b82b6815 Remove debug spam. 2013-05-29 10:59:28 +02:00
Tomahawk CI
991c206d1e Automatic merge of Transifex translations 2013-05-29 02:16:54 +02:00
Uwe L. Korn
40b86dfa99 Make private things private 2013-05-29 00:27:21 +02:00
Uwe L. Korn
8078727771 Copy-Constructor is automatically called 2013-05-29 00:27:09 +02:00
Uwe L. Korn
9bbc3c2d8c Bump Version to 0.7.999 2013-05-29 00:26:51 +02:00
Uwe L. Korn
13775e9366 Remove usage of QSharedPointer around SipInfo 2013-05-29 00:26:17 +02:00
Uwe L. Korn
1ad80185a5 We are handling a set, so we need no duplicate detection. 2013-05-29 00:10:05 +02:00
Teo Mrnjavac
ed575aa033 Add "Mark as Listened" to Inbox. 2013-05-28 17:57:02 +02:00
Uwe L. Korn
d171ab4f69 Fix compilation 2013-05-28 15:19:19 +02:00
Uwe L. Korn
839f1b720e Even more race precautions
* It did not break yet, but I could not sleep without this commit.
2013-05-28 14:55:45 +02:00
Tomahawk CI
a81d13a91f Automatic merge of Transifex translations 2013-05-28 02:16:50 +02:00
Teo Mrnjavac
3ba9ee9779 Send tracks via context menu. 2013-05-27 21:35:40 +02:00
Uwe L. Korn
6189326430 Lock setControlConnection to prevent races 2013-05-27 20:27:33 +02:00
Teo Mrnjavac
f66f3b94af Make tracks sending more discoverable. 2013-05-27 17:54:21 +02:00
Uwe L. Korn
c4ab018ae6 Detect duplicate ControlConnections 2013-05-27 16:30:00 +02:00
Uwe L. Korn
097a377500 Remove trailing semicolons 2013-05-27 16:30:00 +02:00
Uwe L. Korn
0c7ebd8e88 Credits to me 2013-05-27 16:30:00 +02:00
Uwe L. Korn
332b701c56 Change ContolContection* to QPointer 2013-05-27 16:30:00 +02:00
Uwe L. Korn
f076ab9988 Set interval to timeout 2013-05-27 16:30:00 +02:00
Uwe L. Korn
fab81d7958 readyRead is not used as a Slot/Signal 2013-05-27 16:30:00 +02:00
Uwe L. Korn
39e630876e Wait for versionString in Xmpp until telling Servent SipInfos 2013-05-27 16:30:00 +02:00
Uwe L. Korn
9b7dd0110b Weaken references to PeerInfos 2013-05-27 16:30:00 +02:00
Uwe L. Korn
35c32575c1 Introduce ConnectionManager for outgoing connections 2013-05-27 16:30:00 +02:00
Uwe L. Korn
e16028f164 Make less usage of QHostAddress when dealing with DNS records. 2013-05-27 16:30:00 +02:00
Uwe L. Korn
3823bce04e Connection should be able to shutdown even if the socket already disappeared 2013-05-27 16:30:00 +02:00
Uwe L. Korn
e55b83914e Do not delete the Connection in Socket cleanup, we take care of this at another stage. 2013-05-27 16:30:00 +02:00
Uwe L. Korn
dfc5eab62d More logging to find error causes 2013-05-27 16:30:00 +02:00
Uwe L. Korn
21c027d8b1 For old clients, just connect if the magic sort says we should. 2013-05-27 16:30:00 +02:00
Uwe L. Korn
89950c54f5 Sent old tomahawk versions SipInfos like before. 2013-05-27 16:30:00 +02:00
Uwe L. Korn
16d30a1072 Only destroy existing ControlConnection if it does not run anymore 2013-05-27 16:29:59 +02:00
Uwe L. Korn
527fb86608 Make more use of peerInfoDebug 2013-05-27 16:29:59 +02:00
Uwe L. Korn
0a01cd7b2e Split up log messages to know the real cause 2013-05-27 16:29:59 +02:00
Uwe L. Korn
c7f356a62d Lazily create ControlConnection for offers 2013-05-27 16:29:59 +02:00
Uwe L. Korn
08cd6cf6a9 Add const to arguments in getLocalSipInfos 2013-05-27 16:29:59 +02:00
Uwe L. Korn
11b4e1f743 Refactor the creation of local SipInfos into its own method 2013-05-27 16:29:38 +02:00
Uwe L. Korn
89dd9a466d Add more verbose logging 2013-05-27 16:29:38 +02:00
Uwe L. Korn
cf7bd1a9ae Remove assert and fix logging 2013-05-27 16:29:38 +02:00
Uwe L. Korn
7799750a01 Add more logging to connection handling 2013-05-27 16:29:37 +02:00
Uwe L. Korn
fb1d86872d Add a bit of logging to XmppMessage serialzation 2013-05-27 16:29:37 +02:00
Uwe L. Korn
d71a237533 Handle disconnects during connection attempts (i.e. vanishing connection objects) 2013-05-27 16:29:37 +02:00
Uwe L. Korn
03cdb474c1 Sent non-IP hostname as a last hostname too (these are the user-supplied ones) 2013-05-27 16:29:37 +02:00
Uwe L. Korn
374e05c5ca Add ASSERTs again 2013-05-27 16:29:37 +02:00
Uwe L. Korn
2839a000bd Use nodeId instead of id 2013-05-27 16:29:37 +02:00
Uwe L. Korn
d7eea2cc8e Some more style changes 2013-05-27 16:29:37 +02:00
Uwe L. Korn
152609e68d Rename sipInfo to sipInfos at various places 2013-05-27 16:29:37 +02:00
Uwe L. Korn
175c765253 Clear up (Control)Connections if connecting failed. 2013-05-27 16:29:37 +02:00
Uwe L. Korn
724fff1b58 Do nothing in handleSipInfo if we have not received valid SipInfo 2013-05-27 16:29:37 +02:00
Uwe L. Korn
20d3f1ad72 Change comment style to gobal default 2013-05-27 16:29:37 +02:00
Uwe L. Korn
5ea9bbe604 Always try next SipInfo 2013-05-27 16:29:37 +02:00
Uwe L. Korn
70ac653985 Fix multiple ip connection mechanism 2013-05-27 16:29:37 +02:00
Uwe L. Korn
9b7730cd26 Correctly ignore IPv4-as-IPv6 localhost 2013-05-27 16:29:37 +02:00
Uwe L. Korn
8a6cd62c59 Do not try link-local addresses. 2013-05-27 16:29:37 +02:00
Uwe L. Korn
18eda1d3a8 Ignore IPv4 localhost even if written as IPv6 address 2013-05-27 16:29:37 +02:00
Uwe L. Korn
2bc6f05744 Add missing writeEndElement 2013-05-27 16:29:37 +02:00
Uwe L. Korn
0a7e108346 Rename sipInfoList to sipInfo 2013-05-27 16:29:37 +02:00
Uwe L. Korn
612fd27564 Better way to get the id of a peer 2013-05-27 16:29:37 +02:00
Uwe L. Korn
c8384ec757 Get back accidently deleted registerOffer 2013-05-27 16:29:36 +02:00
Uwe L. Korn
14af3aedd6 Ignore Zeroconf messages sent by ourselves 2013-05-27 16:29:36 +02:00
Uwe L. Korn
248a87ccce Create SipInfo with the correct information. 2013-05-27 16:29:36 +02:00
Uwe L. Korn
f226d9a7da Always return SipInfo, even if not visible 2013-05-27 16:29:36 +02:00
Uwe L. Korn
f87f1dbaa0 Remove asserts in getters as this makes debugging harder 2013-05-27 16:29:36 +02:00
Uwe L. Korn
3e8e815b37 Support multiple SipInfos per peer 2013-05-27 16:29:36 +02:00
Uwe L. Korn
4bbc171575 Change option description to reflect new functionality 2013-05-27 16:29:36 +02:00
Uwe L. Korn
13f2430d36 Servent should listen to IPv6 too 2013-05-27 16:29:36 +02:00
Christian Muehlhaeuser
18a2184e57 Revert "Add missing emit ready()"
This reverts commit cc336e9d45.
2013-05-27 12:10:09 +02:00
Christian Muehlhaeuser
b6549b310d Revert "* Some fixes to InfoSystem and loading."
This reverts commit 8460d8f522.
2013-05-27 12:09:55 +02:00
Dominik Schmidt
cc336e9d45 Add missing emit ready() 2013-05-27 11:07:57 +02:00
Christian Muehlhaeuser
8460d8f522 * Some fixes to InfoSystem and loading. 2013-05-27 11:07:46 +02:00
Tomahawk CI
c450ae63fa Automatic merge of Transifex translations 2013-05-27 02:16:44 +02:00
Uwe L. Korn
157880a752 Display friend's avatars on Dashboard even when they are offline
* Fixes TWK-398
2013-05-26 13:45:11 +02:00
Tomahawk CI
5d8b3647a2 Automatic merge of Transifex translations 2013-05-26 02:16:52 +02:00
Uwe L. Korn
62b25991b6 Add desktop notifications for received tracks 2013-05-25 23:14:15 +02:00
Dominik Schmidt
30f82b7d2a Revert "listen to media key events of gnome settings daemon"
This reverts commit 966ab37b94.
2013-05-25 20:09:08 +02:00
Uwe L. Korn
f733b6126f Add the possibility for JSResolvers to specify that a given URL is checked/valid. 2013-05-25 19:49:30 +02:00
Uwe L. Korn
c03c8b8223 Merge pull request #188 from f1ori/master
listen to media key events provided by gnome settings daemon
2013-05-25 08:58:16 -07:00
Florian Richter
966ab37b94 listen to media key events of gnome settings daemon
* add shortcuthandler, which listens to the media key event
  provided by the gnome settings daemon via dbus
  (https://github.com/GNOME/gnome-settings-daemon/blob/master/plugins/media-keys/README.media-keys-API)
2013-05-25 17:51:02 +02:00
Dominik Schmidt
606bc1c51e Forgotten files are forgotten 2013-05-25 15:02:08 +02:00
Dominik Schmidt
23513f2510 Pimple AudioEngine 2013-05-25 15:00:40 +02:00
Teo Mrnjavac
2e6f5c07c1 Useless entry is useless. 2013-05-25 13:46:24 +02:00
Tomahawk CI
3b2ea31ea9 Automatic merge of Transifex translations 2013-05-25 02:16:58 +02:00
Teo Mrnjavac
cab5965605 Avoid crash when propagating dbcmd_ShareTrack. 2013-05-24 18:30:01 +02:00
Jeff Mitchell
bd197f40de Fix spelling 2013-05-24 16:45:51 +02:00
Jeff Mitchell
98bebc4d9e Use removeOne, not removeAll, as there won't be more than one 2013-05-24 16:45:00 +02:00
Teo Mrnjavac
5575eb9e8e Fix loading of playlist updaters. 2013-05-24 16:26:48 +02:00
Uwe L. Korn
89088dd32d Use QKeySequence::Find to focus the search widget 2013-05-24 15:35:57 +02:00
Dominik Schmidt
54101c9177 Move src/breakdpad/CrashReporter to src/crashreporter 2013-05-24 11:49:39 +02:00
Dominik Schmidt
849bb7e773 Build all subdirs of src/ automatically 2013-05-24 11:48:46 +02:00
Dominik Schmidt
a0738ccd76 Adjust cmake to build again and fix include errors
These are partly hacks - I split the commit for referencing the hacks
afterwards
2013-05-24 11:36:12 +02:00
Dominik Schmidt
4a443bfb9f Move application target from src/ to src/tomahawk/ 2013-05-24 11:36:12 +02:00
Tomahawk CI
e11908ff91 Automatic merge of Transifex translations 2013-05-24 02:16:53 +02:00
Teo Mrnjavac
9621943fd7 Try to fix startup issue. 2013-05-23 22:23:19 +02:00
Teo Mrnjavac
25aaa9d485 Make AccountModel loading asynchronous.
AccountManager starts up in 3 steps, first waiting for credentials and
then for Servent to be ready. During this time an AccountModel could be
instantiated in the GUI thread, which needs AccountManager, and if the
latter is not ready at that time, the former cannot be populated with
sane data.
This commit splits the AccountModel ctor so that it waits for
AccountManager to be ready before hooking up to its signals and
performing the initial model reset.
2013-05-23 17:49:53 +02:00
Teo Mrnjavac
7f91aefb3a Debug spam++ 2013-05-23 15:22:14 +02:00
Teo Mrnjavac
2cc476332b Use outbox icon when sending tracks. 2013-05-23 15:15:34 +02:00
Teo Mrnjavac
0295ce5c38 Notify sender of track that an inbox entry has been sent. 2013-05-23 15:02:40 +02:00
Jason Herskowitz
2bab13789a Add outbox SVG 2013-05-23 07:14:24 -04:00
Dominik Schmidt
25a5a4b25d Link privately against qtkeychain 2013-05-23 12:58:58 +02:00
Teo Mrnjavac
68aa51b6d5 Rename QtScriptResolver to JSResolver because JS != QtScript. 2013-05-23 10:23:23 +02:00
Teo Mrnjavac
2ec10fc80f Enable AccountModel debug spam. 2013-05-23 07:33:58 +02:00
Teo Mrnjavac
26399d3603 Fix issue with not all accountIds being carried over to loading phase. 2013-05-23 07:18:10 +02:00
Teo Mrnjavac
315b41d1e9 *** Restore v14 config file before running to avoid losing accounts ***
Change QtKeychain's user-visible service name to "Tomahawk".
2013-05-23 07:18:09 +02:00
Tomahawk CI
06ca60dfca Automatic merge of Transifex translations 2013-05-23 02:16:47 +02:00
Dominik Schmidt
3225a97f9f Add libqtkeychain.dll to windows installer 2013-05-22 20:37:48 +02:00
Dominik Schmidt
4b2765682e Fix config file for build tree usage 2013-05-22 20:24:38 +02:00
Teo Mrnjavac
818d44f2d0 Enable config upgrade path. 2013-05-22 20:15:02 +02:00
Teo Mrnjavac
c86edcd31a Also write credentials to QtKeychain through CredentialsManager. 2013-05-22 20:15:01 +02:00
Teo Mrnjavac
29c8e6ed97 Load Account credentials from CredentialsManager. 2013-05-22 20:15:01 +02:00
Teo Mrnjavac
75f99dca4f Wait for both Servent and AccountManager to be ready for initSIP. 2013-05-22 20:15:01 +02:00
Teo Mrnjavac
f47d8ddf74 Added CredentialsManager as a QtKeychain credentials cache. 2013-05-22 20:15:01 +02:00
Teo Mrnjavac
7e947cc135 Upgrade config. 2013-05-22 20:15:01 +02:00
Teo Mrnjavac
a28ffdaa8f Build with QtKeychain. 2013-05-22 20:15:01 +02:00
Dominik Schmidt
fa2e52c810 hack until Qt5: Make external modules/projects automatically act as gui modules/projects 2013-05-22 16:58:10 +02:00
Dominik Schmidt
4f19f85bde Remove TomahawkVersion.h and QtCrypto includes from public QtScriptResolver header 2013-05-22 16:58:10 +02:00
Tomahawk CI
2d9519163c Automatic merge of Transifex translations 2013-05-22 02:16:40 +02:00
Christian Muehlhaeuser
2351e87333 * Try to work-around translated error messages. Loathing. 2013-05-21 15:10:44 +02:00
Christian Muehlhaeuser
25a210a528 * Show QSqlError's number() when a query fails. 2013-05-21 14:56:29 +02:00
Christian Muehlhaeuser
9a18f6c607 * DbCmd_SetDynamicPlaylistRevision should check if its parent's exec() succeeded. 2013-05-20 13:43:15 +02:00
Christian Muehlhaeuser
6f25e618b5 * Don't retry on empty SQL error. 2013-05-20 13:43:15 +02:00
Tomahawk CI
0fa3b5c1b1 Automatic merge of Transifex translations 2013-05-20 02:16:48 +02:00
Hugo Lindström
ec8f4a99a4 Sort by rank if possible 2013-05-19 12:35:10 +02:00
Hugo Lindström
64e8e814a9 Bump charts and newreleases version 2013-05-19 12:05:51 +02:00
Tomahawk CI
09c272a07c Automatic merge of Transifex translations 2013-05-17 02:16:44 +02:00
Teo Mrnjavac
d08515746e Remove obsolete SocialAction deduplication code. 2013-05-16 17:19:04 +02:00
Teo Mrnjavac
f434b1937f Moved Inbox social action updating to Track. 2013-05-16 16:36:49 +02:00
Teo Mrnjavac
bdce14b02e Add missing copyright statement. 2013-05-16 16:36:49 +02:00
Teo Mrnjavac
86cfc9b719 UnLogPlaybackify AudioEngine. 2013-05-16 16:36:49 +02:00
Christian Muehlhaeuser
83cbd4ec02 * Track can use TrackData's cached sort-names. 2013-05-16 12:55:32 +02:00
Christian Muehlhaeuser
cbb5ac2f2b * TrackData's cache keys need to use the proper DbImpl's sort-names. 2013-05-16 12:54:54 +02:00
Christian Muehlhaeuser
a39a023f22 * Style fixes. 2013-05-16 11:58:13 +02:00
Christian Muehlhaeuser
cce4cfbe4b * XspfUpdater must not try to update a playlist before it was loaded. 2013-05-16 11:58:12 +02:00
Christian Muehlhaeuser
d1ed3dd48d * FIXME: MetadataEditor can't update the Track object currently. It's shared. Fix upcoming. 2013-05-16 11:58:12 +02:00
Christian Muehlhaeuser
e33150f6ca * SourceItem can call the new Track::share( source ) method. 2013-05-16 11:58:12 +02:00
Christian Muehlhaeuser
5b267b0d78 * FIXME: (Qt)ScriptResolver currently can't manually set a year. Fix upcoming. 2013-05-16 11:58:12 +02:00
Christian Muehlhaeuser
93da4fa36e * InboxModel doesn't need to merge / set track attributes anymore. 2013-05-16 11:58:12 +02:00
Christian Muehlhaeuser
daa8a2c6ef * DbCmd_ShareTrack operates on a track(-id) basis. 2013-05-16 11:58:12 +02:00
Christian Muehlhaeuser
9ef160826a * Removed obsolete include. 2013-05-16 11:58:12 +02:00
Christian Muehlhaeuser
f280d28a12 * TrackData stores a track's data & attributes. It gets cached and proxied by (potentially) multiple Track objects. 2013-05-16 11:58:12 +02:00
Christian Muehlhaeuser
84c219105e * Track is now proxying a TrackData object (which is cached and only loaded once per track-id). 2013-05-16 11:58:12 +02:00
Christian Muehlhaeuser
1e1bdb29d4 * No need to manually load attributes. 2013-05-16 11:58:12 +02:00
Christian Muehlhaeuser
611f887882 * The year-property is now part of the track object. 2013-05-16 11:58:11 +02:00
Christian Muehlhaeuser
68a8503d93 * PlayableItem needs to hook up to the proxied signals. 2013-05-16 11:58:11 +02:00
Christian Muehlhaeuser
262ee037a2 * InboxJobItem only needs to deal with a TrackData object. 2013-05-16 11:58:11 +02:00
Christian Muehlhaeuser
8e76ffcc5d * IdThreadWorker supports loading track IDs. 2013-05-16 11:58:11 +02:00
Christian Muehlhaeuser
fcedb57178 * New Track API supports loving without posting to the InfoSystem. 2013-05-16 11:58:11 +02:00
Christian Muehlhaeuser
37216c9bbc * DRY: No need to manually load track attributes. 2013-05-16 11:58:11 +02:00
Christian Muehlhaeuser
9c63bc799d * These DbCmds only want TrackData objects to deal with. 2013-05-16 11:58:11 +02:00
Christian Muehlhaeuser
5acf94d9cd * Result shouldn't handle track attributes. 2013-05-16 11:58:11 +02:00
Christian Muehlhaeuser
216d440206 * Playlist's aboutToBeDeleted is a signal. 2013-05-16 11:58:11 +02:00
Christian Muehlhaeuser
dfcdc09cee * Added DbCmd_LoadTrackAttributes. 2013-05-16 11:58:11 +02:00
Christian Muehlhaeuser
06a46daa0b * Added TrackData typedefs. 2013-05-16 11:58:11 +02:00
Christian Muehlhaeuser
176056f97d * Added TrackData and DbCmd_LoadTrackAttributes. 2013-05-16 11:58:10 +02:00
Christian Muehlhaeuser
d554dbc6fd * Artist id must be >0 when initializing it with pre-loaded data. 2013-05-16 11:58:10 +02:00
Christian Muehlhaeuser
d6462dc002 * Album's id needs to be initialized. 2013-05-16 11:58:10 +02:00
Tomahawk CI
db5c7249b6 Automatic merge of Transifex translations 2013-05-16 02:16:48 +02:00
Christian Muehlhaeuser
4b6064873f * Empty album names are valid, but not indexable. 2013-05-15 14:57:56 +02:00
Christian Muehlhaeuser
1c48491f41 * Probably fixes Teo's indexing assert. 2013-05-15 14:57:56 +02:00
Tomahawk CI
624b369153 Automatic merge of Transifex translations 2013-05-15 02:17:18 +02:00
Christian Muehlhaeuser
d3841baf40 * Clean up SourceDelegate::paint methods. 2013-05-14 13:30:25 +02:00
Christian Muehlhaeuser
5ddd730c4c * Hopefully improved sidebar delegate. 2013-05-14 11:50:09 +02:00
Teo Mrnjavac
85236c5c62 Avoid crash in SuperCollection. 2013-05-10 10:02:35 +02:00
Christian Muehlhaeuser
b7abc9d0f0 * Disable asserts for unknown playlists until PlaylistUpdaters are only loaded on demand. 2013-05-09 13:31:10 +02:00
Dominik Schmidt
836bf17719 Don't install tomahawk_portfwd anymore 2013-05-08 17:31:49 +02:00
Dominik Schmidt
bd1caf276b Don't try to package libportfwd on windows anymore 2013-05-08 16:52:49 +02:00
Dominik Schmidt
fd3a6ad0ef Rename libtomahawklib.* files to libtomahawk.*
Needed lots of fixes for exporting on windows because otherwise a
libtomahawk.dll.a was created for tomahawk.exe which conflicted with the
libtomahawk.dll.a that is created for libtomahawk.dll
2013-05-08 16:31:22 +02:00
Tomahawk CI
32a03baaf3 Automatic merge of Transifex translations 2013-05-08 02:16:53 +02:00
Dominik Schmidt
f2d7e27033 warnings-- 2013-05-07 09:59:54 +02:00
Dominik Schmidt
a1a257d352 warnings-- 2013-05-07 08:56:05 +02:00
Christian Muehlhaeuser
2bb384db91 * Use QPixmapCache for scaled covers to reduce memory footprint. 2013-05-07 06:50:39 +02:00
Christian Muehlhaeuser
2ba9318faf * Updated ChangeLog. 2013-05-07 04:32:32 +02:00
Christian Muehlhaeuser
a79eb6e560 * Use utf8 in TLog. 2013-05-07 04:24:36 +02:00
Christian Muehlhaeuser
64cf40ce8f * Worked around Lucene memory leak and improved our own memory foot-print during indexing. 2013-05-07 04:24:36 +02:00
Tomahawk CI
c04fde0727 Automatic merge of Transifex translations 2013-05-07 02:16:44 +02:00
Christian Muehlhaeuser
25987e0ee8 Merge pull request #186 from agateau/tests-build-fix
Add qjson include dir
2013-05-06 01:06:58 -07:00
Aurélien Gâteau
6a909ef4c0 Add qjson include dir 2013-05-06 10:02:41 +02:00
Christian Muehlhaeuser
9bc8dbb792 * Show date in logfile and time in console output. 2013-05-06 06:00:31 +02:00
Christian Muehlhaeuser
039f87d8ef * Updated README.md. 2013-05-05 04:59:39 +02:00
Tomahawk CI
edf670de41 Automatic merge of Transifex translations 2013-05-05 02:16:47 +02:00
Christian Muehlhaeuser
f9c88532bd * Show message when shutting down a secondary instance. 2013-05-04 20:07:58 +02:00
Christian Muehlhaeuser
4a44a979d4 * Updated ChangeLog. 2013-05-04 13:12:21 +02:00
Christian Muehlhaeuser
79e6d9ec27 * Intercept and handle SSL errors for JS resolvers. 2013-05-04 13:01:16 +02:00
Christian Muehlhaeuser
7e0213bc38 * Added settings methods to handle / trust ssl certs. 2013-05-04 13:00:14 +02:00
Christian Muehlhaeuser
5c6b100de7 * Added (very) basic Query & Result unit tests. 2013-05-04 06:40:07 +02:00
Christian Muehlhaeuser
2558905891 * Style fixes. 2013-05-04 06:09:41 +02:00
Teo Mrnjavac
b1b4bbec97 Update ChangeLog. 2013-05-02 15:01:21 +02:00
Tomahawk CI
8525b6462b Automatic merge of Transifex translations 2013-05-02 02:16:39 +02:00
Teo Mrnjavac
ca3b6411ec There's no need for this connection to be Queued any more.
This fixes Listening along for some users.
2013-05-01 20:55:19 +02:00
Teo Mrnjavac
1098294b03 Fix gradient in InfoBar. 2013-04-30 14:10:34 +02:00
Tomahawk CI
e5fcd077eb Automatic merge of Transifex translations 2013-04-30 02:16:39 +02:00
Christian Muehlhaeuser
6b27e2ad4e * Unbreak SlideSwitchButton. 2013-04-29 19:24:04 +02:00
Christian Muehlhaeuser
f99cfb8e66 * Moved color consts into TomahawkStyle. 2013-04-29 19:22:00 +02:00
Christian Muehlhaeuser
e6c2498fc6 * No need to have const values being returned from methods. 2013-04-29 18:27:54 +02:00
Christian Muehlhaeuser
4a221a79a4 * StyleHelper doesn't exist anymore. 2013-04-29 18:15:12 +02:00
Christian Muehlhaeuser
55fd82bfd4 * Added FIXMEs. 2013-04-29 18:14:16 +02:00
Christian Muehlhaeuser
95e84be319 * Merged StyleHelper into TomahawkStyle. 2013-04-29 18:13:17 +02:00
Christian Muehlhaeuser
082cedda17 * Use new TomahawkStyle namespace throughout Tomahawk. 2013-04-29 17:48:37 +02:00
Christian Muehlhaeuser
7276b805d5 * Moved POPUP consts into TomahawkStyle namespace. 2013-04-29 17:48:20 +02:00
Christian Muehlhaeuser
98724c3457 * Renamed TomahawkColors to TomahawkStyle. 2013-04-29 17:44:55 +02:00
Christian Muehlhaeuser
2537daa0b6 * Moved TomahawkUtils::Colors into TomahawkColors and a separate file. 2013-04-29 17:39:25 +02:00
Christian Muehlhaeuser
d326290fd7 * Make Pipeline less verbose. 2013-04-29 16:17:31 +02:00
Christian Muehlhaeuser
e02229e232 * No need to store score as a variable. 2013-04-29 05:30:37 +02:00
Christian Muehlhaeuser
619a2df812 * Check for null results / tracks being created. 2013-04-29 05:30:37 +02:00
Christian Muehlhaeuser
9b53dc5c4e * Return null result when trying to create one without a url. 2013-04-29 05:30:37 +02:00
Christian Muehlhaeuser
ee2a71a09f * Assert when trying to create a track without artist or track name. 2013-04-29 05:30:37 +02:00
Tomahawk CI
8e3de08d87 Automatic merge of Transifex translations 2013-04-29 02:28:14 +02:00
Christian Muehlhaeuser
fea0b9e9f2 * Updated ChangeLog. 2013-04-29 02:03:36 +02:00
Christian Muehlhaeuser
d42d3ac326 * Fixed displaying filename in properties dialog. 2013-04-29 01:47:22 +02:00
Christian Muehlhaeuser
8a8a25a351 * Fixed TWK-1292: Issues playing fils with '#' in the filename. 2013-04-29 01:37:11 +02:00
Tomahawk CI
4079ec0739 Automatic merge of Transifex translations 2013-04-28 02:16:51 +02:00
Christian Muehlhaeuser
3b481590b1 * Updated ChangeLog for 0.7. 2013-04-27 04:49:49 +02:00
Christian Muehlhaeuser
dc542f3fde * Updated ChangeLog. 2013-04-27 04:49:42 +02:00
Christian Muehlhaeuser
320ff82047 * Updated ChangeLog. 2013-04-27 04:49:19 +02:00
Christian Muehlhaeuser
049b6ef8a5 * Make use of new Playlist::get() API. 2013-04-27 04:49:19 +02:00
Christian Muehlhaeuser
499ba45c73 * Playlist::get now finds any kind of playlist_ptr with that guid. 2013-04-27 04:49:18 +02:00
Christian Muehlhaeuser
96de8e2969 * Added new translations. 2013-04-27 04:49:18 +02:00
Tomahawk CI
279e044c64 Automatic merge of Transifex translations 2013-04-27 02:17:17 +02:00
Christian Muehlhaeuser
fa64e12a55 * Assert when diverging and source is not local. 2013-04-27 01:25:38 +02:00
Christian Muehlhaeuser
511c1aef70 * Style fixes. 2013-04-27 01:20:45 +02:00
Christian Muehlhaeuser
f4d3afbfd7 * Made DbCmd_DeleteDynamicPlaylist more robust. 2013-04-27 01:20:45 +02:00
Christian Muehlhaeuser
661d43c10d * Make DbCmd_SetPlaylistRevision more robust and verbose. 2013-04-27 01:20:45 +02:00
Christian Muehlhaeuser
4ed267d477 * Adapted playlist users to use new API. 2013-04-27 01:20:45 +02:00
Christian Muehlhaeuser
d8c5c74258 * Always base playlist changes on currently loaded revision. 2013-04-27 01:20:45 +02:00
Teo Mrnjavac
5923a754dd How about no.
(Reverts inbox entry colors from palette)
2013-04-26 17:39:25 +02:00
Teo Mrnjavac
d5e7ee7716 How about using link color from palette? 2013-04-26 17:27:40 +02:00
Christian Muehlhaeuser
d5bde429c1 * Renamed WebResultHintChecker to ResultUrlChecker. 2013-04-26 14:12:45 +02:00
Christian Muehlhaeuser
cd5d1eefd1 * Turn down verbosity a notch. 2013-04-26 14:01:48 +02:00
Christian Muehlhaeuser
31f95e24cf * Use new Playlist::get(). 2013-04-26 14:00:05 +02:00
Christian Muehlhaeuser
f4a3db0c37 * Renamed (Dynamic)Playlist::load() to ::get(). 2013-04-26 13:57:36 +02:00
Christian Muehlhaeuser
83d5b56386 * Try to explain cli params better. 2013-04-26 13:16:04 +02:00
Christian Muehlhaeuser
69e19afbef * Style fixes. 2013-04-26 13:15:38 +02:00
Christian Muehlhaeuser
7bcf3e2e15 * Style fix. 2013-04-26 11:52:06 +02:00
Christian Muehlhaeuser
a027f4f0b2 * No need to manually check for source id being 0. 2013-04-26 11:46:41 +02:00
Christian Muehlhaeuser
4aa85bce34 * Pipeline now runs WebResultHintChecker to validate http urls before accepting them as playable results. 2013-04-26 10:51:03 +02:00
Christian Muehlhaeuser
32651b5a13 * To emulate QNetworkReply's behaviour, we need to emit finished() after an error occured. 2013-04-26 10:50:31 +02:00
Christian Muehlhaeuser
13ab38ae8f * New WebResultHintChecker API. Class will be renamed soon. 2013-04-26 10:50:24 +02:00
Christian Muehlhaeuser
5fe963fa50 * Don't launch WebResultHintChecker from PlaylistModel. 2013-04-26 10:44:59 +02:00
Christian Muehlhaeuser
cde8fe3c1f * Moved PlaylistEntry class into separate files. 2013-04-26 09:49:18 +02:00
Christian Muehlhaeuser
8d64785f0d * Use tDebug(). 2013-04-26 09:10:36 +02:00
Christian Muehlhaeuser
7b4c025b2a * Always sync the PlaylistEntry's result-hint to the database - never the Query's. 2013-04-26 09:10:23 +02:00
Christian Muehlhaeuser
5cdc8e40c6 * Only update playlist when a result-hint has been changed. 2013-04-26 09:09:49 +02:00
Christian Muehlhaeuser
9dbdffd0ef * Query::resolvingFinished should indicate whether there are any results, not whether the Query is solved. 2013-04-26 09:08:52 +02:00
Christian Muehlhaeuser
a0a906b891 * Can't initialize delegates with NULL parent or proxy. 2013-04-26 07:53:52 +02:00
Christian Muehlhaeuser
6b6b331fa8 * The delegates should take care of hooking up the updateIndex( QModelIndex ) signal to the view. 2013-04-26 07:51:50 +02:00
Christian Muehlhaeuser
2a45a53283 * If we don't set the style before we set the model, the cover methods won't be hooked up. 2013-04-26 07:45:12 +02:00
Christian Muehlhaeuser
bd7f7420a4 * If we set a new model it might already contain content, so we need to call onViewChanged to check if we need to load covers / metadata. 2013-04-26 07:43:37 +02:00
Christian Muehlhaeuser
8c06c3ab6a * Always initialize the style option, so we set the right selection state. 2013-04-26 07:17:26 +02:00
Teo Mrnjavac
8c4f6d7917 Avoid mysterious constants of doom in delegates. 2013-04-26 07:07:51 +02:00
Teo Mrnjavac
161e287877 Make blue dots in inbox smaller. 2013-04-26 07:01:22 +02:00
Christian Muehlhaeuser
59124fb270 * Show 'Searching...' / 'Not available' in detailed playlist view. 2013-04-26 06:59:32 +02:00
Christian Muehlhaeuser
208da545f4 * Style fix. 2013-04-26 06:38:58 +02:00
Christian Muehlhaeuser
859e2e4a7b * Save & restore queue across sessions. 2013-04-26 06:38:48 +02:00
Christian Muehlhaeuser
a074af2c22 * Added methods to save / load queue state. 2013-04-26 06:37:49 +02:00
Christian Muehlhaeuser
2b6081f4c7 * Fixed PlaylistItemDelegate swallowing mouse events, which prevented TrackView from triggering D&D operations. 2013-04-26 06:06:44 +02:00
Christian Muehlhaeuser
9a1ed86d62 * Fixed loading social actions in AudioControls. 2013-04-26 05:18:47 +02:00
Christian Muehlhaeuser
aef1dcec59 * Fixed cover loading in AudioControls. 2013-04-26 05:15:32 +02:00
Christian Muehlhaeuser
a39a981289 * Make SpotifyPlaylistUpdater check for playlists being loaded. 2013-04-26 05:06:24 +02:00
Christian Muehlhaeuser
d85490da57 * Bumped libechonest requirement to 2.0.3.
This reverts commit b2b1ff1cba.
2013-04-26 04:24:43 +02:00
Christian Muehlhaeuser
8b21d47667 * Style cleanups. 2013-04-26 03:15:20 +02:00
Christian Muehlhaeuser
3d974786d0 * Load playlists before showing them. 2013-04-26 03:15:20 +02:00
Christian Muehlhaeuser
e1ab051d75 * Don't load playlists on startup. 2013-04-26 03:15:19 +02:00
Christian Muehlhaeuser
f024fb5fc8 * PlaylistItems don't need to worry about playlists being loaded anymore. 2013-04-26 03:15:19 +02:00
Christian Muehlhaeuser
efb00795e5 * Call setLoaded() from DynamicPlaylist. 2013-04-26 03:15:19 +02:00
Christian Muehlhaeuser
3131390e51 * Added setLoaded( bool ) to Playlist, for derived classes to make use of. 2013-04-26 03:15:19 +02:00
Christian Muehlhaeuser
737b8e46ae * RecentPlaylistsModel needs to manually load playlists now. 2013-04-26 03:15:19 +02:00
Christian Muehlhaeuser
babc3cf0d3 * Only try to update playlist if it's loaded. 2013-04-26 03:15:19 +02:00
Christian Muehlhaeuser
01e3c3b5b3 * Playlist now queues addEntries/insertEntries calls if it's not loaded yet. 2013-04-26 03:15:19 +02:00
Tomahawk CI
729291c589 Automatic merge of Transifex translations 2013-04-26 02:16:41 +02:00
Teo Mrnjavac
6b5d30d936 Remove yellow tint. 2013-04-25 22:28:01 +02:00
Teo Mrnjavac
59e6c7b83d Added nice blue dot to new inbox entries. 2013-04-25 22:25:13 +02:00
Jason Herskowitz
f644ee25f1 New Inbox Item icon 2013-04-25 10:40:27 -04:00
Tomahawk CI
37cb8b3dfb Automatic merge of Transifex translations 2013-04-25 02:16:51 +02:00
Christian Muehlhaeuser
9459aa8d56 * Updated pngs. 2013-04-24 19:54:32 +02:00
Jason Herskowitz
079c4e16ea Give the logo SVG a cream filling 2013-04-24 13:21:20 -04:00
Jason Herskowitz
8add6b05a0 Try getting a shadow on SVG logo similar to PNG 2013-04-24 12:58:13 -04:00
Jason Herskowitz
384467a979 Make SVG Icon square 2013-04-24 12:46:46 -04:00
Jason Herskowitz
f97d1d4abe Fix Tomahawk icon SVG 2013-04-24 12:43:42 -04:00
Christian Muehlhaeuser
3edb583557 * Updated ChangeLog. 2013-04-24 17:30:21 +02:00
Christian Muehlhaeuser
06ede10d38 * Updated ChangeLog. 2013-04-24 17:29:34 +02:00
Christian Muehlhaeuser
f6b3600e69 * Mark temporary playlists as such. 2013-04-23 18:42:52 +02:00
Christian Muehlhaeuser
c52469ff1f * Added ViewManager::createPageForList( queries ). 2013-04-23 15:47:46 +02:00
Christian Muehlhaeuser
839197e902 * Don't crash when we couldn't retrieve the playlist. 2013-04-23 12:39:54 +02:00
Christian Muehlhaeuser
d9a82109f5 * RecentlyPlayedModel needs to use Source's new signal. 2013-04-23 12:39:53 +02:00
Christian Muehlhaeuser
ad314585b9 * PlayableModel::insertQuery now also accepts PlaybackLogs. 2013-04-23 12:39:53 +02:00
Christian Muehlhaeuser
4b673d0c97 * Played / PlaybackFinished signals now use our PlaybackLog struct. 2013-04-23 12:39:53 +02:00
Teo Mrnjavac
f7ad8cb799 Cache icon and text for Inbox item. 2013-04-23 10:08:26 +02:00
Teo Mrnjavac
024a1f74b3 Added unlistened count to Inbox item in sources view. 2013-04-23 03:41:58 +02:00
Teo Mrnjavac
f9edc04b04 Mark tracks as listened when they are played in the Inbox. 2013-04-23 03:41:58 +02:00
Teo Mrnjavac
866c8d4bec Draw new tracks in inbox differently. 2013-04-23 03:41:58 +02:00
Tomahawk CI
28dbf8bf55 Automatic merge of Transifex translations 2013-04-23 02:16:17 +02:00
Christian Muehlhaeuser
fe81ce73eb Merge pull request #185 from MStoykov/patch-1
fix .desktop file
2013-04-22 15:25:12 -07:00
Dominik Schmidt
ce95e6b761 Don't use interface as varname as MinGW doesn't like that 2013-04-22 15:47:39 +02:00
Christian Muehlhaeuser
b1a159a7cb * Only keep one temporary cover art image. 2013-04-22 11:27:32 +02:00
Christian Muehlhaeuser
f6b2e17792 * Fixed fulltext querying. 2013-04-22 10:51:07 +02:00
Christian Muehlhaeuser
75d02a982d * Fixed setting timestamp on locally started tracks. 2013-04-22 10:30:42 +02:00
Christian Muehlhaeuser
4737197987 * Don't be too verbose. 2013-04-22 09:44:25 +02:00
Christian Muehlhaeuser
d0207152b6 * Don't double-check playback-logs for remotes. 2013-04-22 09:39:17 +02:00
Christian Muehlhaeuser
334951e34c * Updated Inbox to use new API. 2013-04-22 09:39:17 +02:00
Christian Muehlhaeuser
3dab38eade * Allow to set PlaybackLogs when inserting items to PlayableModel. 2013-04-22 09:39:17 +02:00
Christian Muehlhaeuser
e905a4b617 * Use new DbCmd interfaces. 2013-04-22 09:39:17 +02:00
Christian Muehlhaeuser
0bde2a5521 * Now-Playing signals can use tracks instead. 2013-04-22 09:39:17 +02:00
Christian Muehlhaeuser
9be6dfaad5 * These DBCmds don't need or want to use queries. 2013-04-22 09:39:17 +02:00
Christian Muehlhaeuser
18f44f4e47 * Style fixes. 2013-04-22 09:35:38 +02:00
Christian Muehlhaeuser
2c79831ef8 * Register Track class. 2013-04-22 09:35:38 +02:00
Christian Muehlhaeuser
77fe7bc334 * Make use of new Track class / api. 2013-04-22 09:35:38 +02:00
Christian Muehlhaeuser
f0fdb47f4e * Only log dtors in verbose mode. 2013-04-22 09:35:38 +02:00
Christian Muehlhaeuser
e9fa70cc94 * Result uses a Track object internally. 2013-04-22 09:35:38 +02:00
Christian Muehlhaeuser
4f6a532f99 * Query class uses and exposes Track objects. 2013-04-22 09:35:37 +02:00
Christian Muehlhaeuser
2213613cff * Added Track class. 2013-04-22 09:35:37 +02:00
Tomahawk CI
715fb70abd Automatic merge of Transifex translations 2013-04-21 02:17:33 +02:00
Mihail Stoykov
cf1582b1c6 fix .desktop file
as per the specification:
" Multiple keys in the same group may not have the same name. Keys in different groups may have the same name. "
2013-04-20 14:23:35 +03:00
Teo Mrnjavac
0800aa6ac7 Show discreet JobStatusItem for incoming tracks. 2013-04-19 22:53:19 +02:00
Dominik Schmidt
14fb8a8533 Assert that no peers with empty contactId are announced, i.e. forcing account authors to set it 2013-04-18 19:03:52 +02:00
Dominik Schmidt
cf6d37041b Strip more stuff from vlc dir 2013-04-18 18:56:18 +02:00
Dominik Schmidt
d888bb6815 Install collection headers 2013-04-18 18:56:02 +02:00
Christian Muehlhaeuser
0b061de7a2 * Set a contact id when creating peerinfo for zeroconf in Servent. 2013-04-18 17:37:41 +02:00
Christian Muehlhaeuser
182d0ba8ae * Set a contact id on Zeroconf peers. 2013-04-18 17:12:13 +02:00
Christian Muehlhaeuser
1ec3a3bb70 * Don't try to re-load avatars. 2013-04-18 17:06:21 +02:00
Christian Muehlhaeuser
344130cf60 * Fix and saftey checks for avatar handling. 2013-04-18 16:39:39 +02:00
Christian Muehlhaeuser
6c19cf7bd1 * Fixed avatar caching going bonkers. 2013-04-18 16:22:28 +02:00
Tomahawk CI
1840902b26 Automatic merge of Transifex translations 2013-04-18 02:16:16 +02:00
Christian Muehlhaeuser
9830b20ca1 * Updated Album- & PlaylistChartItemDelegate. 2013-04-17 06:45:14 +02:00
Christian Muehlhaeuser
618dff77e4 * Request item repaint via PlayableItem. 2013-04-17 04:09:47 +02:00
Christian Muehlhaeuser
c0e41809e6 * Request item repaint via PlayableItem. 2013-04-17 04:03:19 +02:00
Christian Muehlhaeuser
9554ce6199 * Don't use hard-coded color values. 2013-04-17 03:36:05 +02:00
Christian Muehlhaeuser
0ce5f5873c * It's not called PlaylistManager anymore ;-) 2013-04-17 03:30:46 +02:00
Christian Muehlhaeuser
5637de99d3 * Reset the delegates' hover-index after a wheel-event. 2013-04-17 03:30:46 +02:00
Christian Muehlhaeuser
359321f19c * Delegates can now reset the hover-index upon request. 2013-04-17 03:30:46 +02:00
Tomahawk CI
65a598ef8b Automatic merge of Transifex translations 2013-04-17 02:27:44 +02:00
Christian Muehlhaeuser
c4ef6b30d9 * Updated ChangeLog. 2013-04-17 02:08:17 +02:00
Christian Muehlhaeuser
05d2fbdfae * Cleanups. 2013-04-16 12:42:54 +02:00
Christian Muehlhaeuser
9a67ea2074 * Double-click expands artists & albums. We now show an info button for those items. 2013-04-16 12:41:54 +02:00
Christian Muehlhaeuser
6a32f5e009 * Don't assert here. 2013-04-16 11:42:41 +02:00
Christian Muehlhaeuser
bfb83c6bbe * ViewManager now deletes the ViewPages for us. 2013-04-16 11:37:09 +02:00
Christian Muehlhaeuser
108ad2aa96 * Emit signals before and after deleting a viewpage. 2013-04-16 11:36:52 +02:00
Christian Muehlhaeuser
2db0c13821 * Check control states after a viewpage has been deleted. 2013-04-16 11:36:31 +02:00
Christian Muehlhaeuser
c92ce9d8a5 * Init AudioControls after ViewManager. 2013-04-16 11:35:55 +02:00
Christian Muehlhaeuser
8b42dfcc7a * Only delete ControlConnection if we don't expect any incoming connections. 2013-04-16 10:59:54 +02:00
Christian Muehlhaeuser
fdf1ddc61a * Fixed foreground color. 2013-04-16 10:59:23 +02:00
Christian Muehlhaeuser
81dc2fe1fa * Never wrap text in sidebar. 2013-04-16 10:39:27 +02:00
Christian Muehlhaeuser
b76f40e67b * Don't allow to collapse the sidebar entirely. 2013-04-16 10:29:03 +02:00
Christian Muehlhaeuser
e6fd1c199e * Don't use hard-coded colors. 2013-04-16 10:24:22 +02:00
Christian Muehlhaeuser
dea6a41d11 * Wording change: Remove instead of Delete. 2013-04-16 10:17:25 +02:00
Hugo Lindström
175b69a22a Validate localfiles 2013-04-16 10:06:12 +02:00
Christian Muehlhaeuser
d7c03e03ce * Store PeerInfos in a temporary ControlConnection while the SIP is pending, so they don't get deleted again immediately. 2013-04-16 09:39:31 +02:00
Hugo Lindström
59a30573ee Fix compile 2013-04-16 08:43:15 +02:00
Hugo Lindström
ebe9f6fb34 Allow dropping iTunes Library 2013-04-16 08:23:13 +02:00
Teo Mrnjavac
b6449fcd63 Remove PeerInfo from cache on dtor. 2013-04-16 08:20:12 +02:00
Teo Mrnjavac
dbe8f7f499 Make the PeerInfo cache contain weak pointers. 2013-04-16 07:15:17 +02:00
Christian Muehlhaeuser
072b4e13e6 * Style cleanup. 2013-04-16 06:07:07 +02:00
Christian Muehlhaeuser
cc927b2419 * Moved info button handling out of the views. 2013-04-16 06:06:57 +02:00
Christian Muehlhaeuser
ecadb3a1a7 * Moved info button handling into TreeItemDelegate. 2013-04-16 06:06:12 +02:00
Christian Muehlhaeuser
14c5b9d983 * Moved info button handling into PlaylistItemDelegate. 2013-04-16 06:05:29 +02:00
Christian Muehlhaeuser
5c60f5d3cc * Fixed TWK-1215: Dupe tracks used to caused playback to loop. 2013-04-16 02:44:04 +02:00
Tomahawk CI
997c7f6f68 Automatic merge of Transifex translations 2013-04-16 02:16:18 +02:00
Leo Franchi
a8a10cb9b5 Don't crash if artist is missing from chart album data 2013-04-15 14:08:09 -04:00
Teo Mrnjavac
bd46cc2f72 Implement delete support in Inbox. 2013-04-15 13:31:05 +02:00
Teo Mrnjavac
9753e3c71f Fix ordering, again, this time we stick to whatever is in the db. 2013-04-15 10:08:20 +02:00
Teo Mrnjavac
a0d150489a Add and reload tracks to Inbox in the same order. 2013-04-14 22:08:47 +02:00
Teo Mrnjavac
6d874c8da8 Inbox deduplication and delegate. 2013-04-13 22:56:45 +02:00
Teo Mrnjavac
a357007d11 Don't group. 2013-04-13 22:56:36 +02:00
Tomahawk CI
bafd1d0529 Automatic merge of Transifex translations 2013-04-12 02:16:29 +02:00
Jason Herskowitz
dabfbfdabd Better Inbox icon (at least on OSX) 2013-04-11 10:17:15 -04:00
Uwe L. Korn
cffacabe65 Sort playlist alphabetically in ContextMenu 2013-04-11 12:28:51 +02:00
Tomahawk CI
1e1177f3b4 Automatic merge of Transifex translations 2013-04-11 02:16:24 +02:00
Teo Mrnjavac
1bdc87b4ba Add persistence to Inbox. 2013-04-10 06:01:06 +02:00
Teo Mrnjavac
5fb6fadfe8 No need for JSON actually, because there's a source column we can use. 2013-04-10 06:01:05 +02:00
Teo Mrnjavac
d0d2278e17 Have dbcmd_ShareTrack inherit from dbcmd_SocialAction and write to db. 2013-04-10 06:01:05 +02:00
Teo Mrnjavac
4fff01b56d Add *.autosave to .gitignore. 2013-04-10 06:01:05 +02:00
Tomahawk CI
6bd37a29aa Automatic merge of Transifex translations 2013-04-10 02:17:39 +02:00
Uwe L. Korn
8d5f643e2e Define QXT_STATIC in header so that parent projects use it. 2013-04-09 11:35:11 +02:00
Christian Muehlhaeuser
db240b84bc * Temporary work-around for losing the shared-pointer. 2013-04-09 11:17:00 +02:00
Teo Mrnjavac
938b136cb5 Added temporary status message for incoming suggestions. 2013-04-09 11:00:58 +02:00
Uwe L. Korn
bd9ddf142b Compile qxt with QXT_STATIC 2013-04-09 10:50:03 +02:00
Uwe L. Korn
bf2067c414 Fix QxtFifo and move qxtweb modules in their respective folder 2013-04-09 10:36:43 +02:00
Teo Mrnjavac
fd60cf4a5b Prepend tracks to inbox, and avoid crash. 2013-04-09 10:13:48 +02:00
Teo Mrnjavac
2dd5515392 Correctly accept track drops for inbox. 2013-04-09 09:13:08 +02:00
Teo Mrnjavac
69e226a906 Implementations in headers make domme a sad panda. 2013-04-09 09:13:08 +02:00
Teo Mrnjavac
143b332380 Use new Inbox icon. 2013-04-09 09:13:07 +02:00
Teo Mrnjavac
3847eae6cc Basic inbox support, sending track suggestions kind of works sometimes. 2013-04-09 09:13:07 +02:00
Teo Mrnjavac
04fc5f6f37 Initial commit for listening suggestions. Dbcmd and stubs. 2013-04-09 09:13:07 +02:00
Tomahawk CI
24d8788ee2 Automatic merge of Transifex translations 2013-04-09 02:16:33 +02:00
Teo Mrnjavac
286358d5d2 Hide debug tooltips unless --verbose. 2013-04-08 15:14:21 +02:00
Tomahawk CI
b30be142a2 Automatic merge of Transifex translations 2013-04-08 02:16:59 +02:00
Christian Muehlhaeuser
c4889850d2 * Bumped to 0.7.99. 2013-04-07 19:49:05 +02:00
Teo Mrnjavac
8cc52bca75 Added path check for metadata.json through Attica. 2013-04-07 19:21:25 +02:00
Tomahawk CI
2d57f6c140 Automatic merge of Transifex translations 2013-04-07 02:16:38 +02:00
Tomahawk CI
7df5b853c6 Automatic merge of Transifex translations 2013-04-06 02:16:20 +02:00
Teo Mrnjavac
69cba83e17 Avoid double-populating ScriptCollections when refreshing. 2013-04-05 23:36:50 +02:00
Teo Mrnjavac
ae2ef735ed Accounts delegate fixes: padding and status text font. 2013-04-05 23:24:07 +02:00
Teo Mrnjavac
5530d58997 Temporary special case for Twitter, don't show connection status. 2013-04-05 23:11:12 +02:00
Jason Herskowitz
09273478e0 Give refresh.svg some padding so it's square 2013-04-05 16:47:27 -04:00
Christian Muehlhaeuser
b3751525dd * Tune down logging verbosity a bit. 2013-04-05 18:58:42 +02:00
Christian Muehlhaeuser
102633803a * Use result and added comment as to why we require this parameter. 2013-04-05 15:53:33 +02:00
Christian Muehlhaeuser
4a76b561c4 * Fixed a ton of compiler warnings. 2013-04-05 15:42:01 +02:00
Teo Mrnjavac
07af484e3e F2 to rename playlist/station.
Fixes TWK-931.
2013-04-05 14:45:33 +02:00
Hugo Lindström
63a45db084 Increase indentation on OSx 2013-04-05 12:43:34 +02:00
Teo Mrnjavac
82579c65f1 Fix SourceDelegate editor geometry. 2013-04-05 11:01:10 +02:00
Teo Mrnjavac
478b60b2bf Add proper Load/Rename Station strings.
This fixes TWK-1291.
2013-04-05 10:39:36 +02:00
Hugo Lindström
fdf115b3a8 Spinner loads gourgeously on albumViews 2013-04-05 03:41:48 +02:00
Tomahawk CI
e8d4fe5277 Automatic merge of Transifex translations 2013-04-05 02:16:31 +02:00
Hugo Lindström
96c4bfd610 Utilize new detailed information, allowing any new sources after 0.6.99 2013-04-05 00:48:46 +02:00
Teo Mrnjavac
a47e1043fc Don't repeat scriptcollection queries when an album has no tracks.
This should never happen with sane data.
2013-04-04 12:44:52 +02:00
Tomahawk CI
3f48d1a3ad Automatic merge of Transifex translations 2013-04-04 02:16:57 +02:00
Tomahawk CI
24b11f46c9 Automatic merge of Transifex translations 2013-04-03 02:16:24 +02:00
Hugo Lindström
8e1bdf5f7b Fade out spinner and update playstate on cover button 2013-04-02 19:55:12 +02:00
Hugo Lindström
5b4d68e2cd Bump version 2013-04-02 12:28:53 +02:00
Hugo Lindström
3b3889e8ff Only fetch invalid sources 2013-04-02 12:28:32 +02:00
Tomahawk CI
be14446423 Automatic merge of Transifex translations 2013-04-02 02:16:28 +02:00
Hugo Lindström
01e60f5c3d Merge pull request #182 from xhochy/feature/select-existing-spotify-playlist-instead-of-double-adding
Do not double add existing spotify playlists
2013-04-01 15:17:03 -07:00
Teo Mrnjavac
ab5205dfd6 Fix includes. 2013-04-01 22:36:28 +02:00
Hugo Lindström
5ae08d7144 Bump version to force updates 2013-04-01 22:30:16 +02:00
Hugo Lindström
94116cd7f2 Lazy load NewReleasesWidget 2013-04-01 21:29:41 +02:00
Hugo Lindström
bd6303a6e6 Bump version 2013-04-01 21:13:16 +02:00
Teo Mrnjavac
43d21cea7c Disable SIP-related strings and UI elements. 2013-04-01 21:03:43 +02:00
Teo Mrnjavac
f134be44b1 Bring back Twitter, but only for social actions.
SIP is disabled.
2013-04-01 21:03:43 +02:00
Hugo Lindström
49be0e77cf Remove unused, stylefix 2013-04-01 19:06:42 +02:00
Hugo Lindström
100f08b0b8 Parse Wah as regular chart 2013-04-01 18:38:05 +02:00
Hugo Lindström
5bed90dbb7 Wait for infosystem and load breadcrumb 2013-04-01 18:36:23 +02:00
Hugo Lindström
2679c776b2 Bump version 2013-04-01 12:38:13 +02:00
Tomahawk CI
86c88d9876 Automatic merge of Transifex translations 2013-04-01 02:17:53 +02:00
Hugo Lindström
6f9f0d882f Remove debug 2013-03-31 10:26:56 +02:00
Hugo Lindström
9087e93f72 Add rdio geo's 2013-03-31 10:23:59 +02:00
Christian Muehlhaeuser
4994c4e5cc * Remove artists from internal cache when destroying them. 2013-03-31 07:15:44 +02:00
Christian Muehlhaeuser
5f32bdb277 * Remove albums from internal cache when destroying them. 2013-03-31 07:15:08 +02:00
Christian Muehlhaeuser
d932aa6c2d * If we receive unexpected data in Servent, log it for debugging. 2013-03-31 05:36:52 +02:00
Christian Muehlhaeuser
b03eb6defb * Style cleanups. 2013-03-31 05:36:15 +02:00
Christian Muehlhaeuser
084a3cd2f3 * PeerInfos are stored as a QSharedPointer, so don't give them a parent. 2013-03-31 05:34:35 +02:00
Christian Muehlhaeuser
3745cd247e * Only store results in Pipeline when we're working on temporary queries - e.g. for the rest-API. 2013-03-31 05:33:35 +02:00
Tomahawk CI
d0631bf75e Automatic merge of Transifex translations 2013-03-31 01:17:04 +01:00
Christian Muehlhaeuser
1cfe6ac158 Merge pull request #183 from xhochy/patch-1
Add spotify URL handling
2013-03-30 07:46:31 -07:00
Uwe L. Korn
d03a0a2c74 Add spotify URL handling
Tomahawk is able to handle most of the spotify URLs (except such things as Apps).
2013-03-30 15:45:38 +01:00
Uwe L. Korn
230a715de2 Do not double add existing spotify playlists 2013-03-30 15:18:35 +01:00
Christian Muehlhaeuser
fbcfadf82d Merge pull request #181 from xhochy/feature/open-spotify-playlist-from-cli2
Open more than just tracks for Spotify from the commandline
2013-03-30 06:55:29 -07:00
Uwe L. Korn
c2d11f4ece Open more than just tracks for Spotify from the commandline 2013-03-30 14:39:16 +01:00
Christian Muehlhaeuser
5b59ab56d4 * Style fixes. 2013-03-30 13:06:51 +01:00
Christian Muehlhaeuser
119f67c8f8 * Delete root-item when destroying the PlayableModel. 2013-03-30 13:06:22 +01:00
Christian Muehlhaeuser
46f1ae3ee4 * Only store weak-pointers in the internal Artist cache. 2013-03-30 13:04:59 +01:00
Christian Muehlhaeuser
8e37ecbd05 * Only store weak-pointers in the internal Album cache. 2013-03-30 13:04:01 +01:00
Christian Muehlhaeuser
a26df54d9f * Added typedefs for Artist & Album weakpointers. 2013-03-30 13:03:07 +01:00
Christian Muehlhaeuser
32cbc09595 * Removed obsolete QPixmap. 2013-03-30 09:11:54 +01:00
Christian Muehlhaeuser
70fdf2b0ea * Fixed avatar creation in wrong thread and start-up slow down. 2013-03-30 09:07:45 +01:00
Christian Muehlhaeuser
a4689a1850 Merge pull request #179 from xhochy/fix/knotify-recognize-richtext
Add markup to the first notification line to overcome problems with KNotify.
2013-03-30 00:00:31 -07:00
Tomahawk CI
f32803e188 Automatic merge of Transifex translations 2013-03-30 01:16:18 +01:00
Uwe L. Korn
8b0c5c4eee Add markup to the first notification line to overcome problems with KNotify. 2013-03-29 23:22:50 +01:00
Christian Muehlhaeuser
da206ee3d9 Merge pull request #178 from xhochy/fix/dbus-notify-linebreak
Replace <br /> with \n in Notifictation messages
2013-03-29 13:21:57 -07:00
Uwe L. Korn
64c833ac46 Extract markup out of now playing message 2013-03-29 20:45:44 +01:00
Uwe L. Korn
f25023879f Move markup out of album string in D-Bus message. 2013-03-29 20:20:49 +01:00
Tomahawk CI
8fb053b0a9 Automatic merge of Transifex translations 2013-03-29 01:17:13 +01:00
Teo Mrnjavac
f3deacd4f0 Do not auto-fill XMPP server. This reverts b5d1f8a and fixes server
detection.
2013-03-28 20:21:26 +01:00
Uwe L. Korn
c10f2fef86 Replace <br /> with \n in Notifictation messages
* <br /> is not supported by all WMs
* \n has broader support or will be sliently (i.e. without printing a
  character) ignored
2013-03-28 15:15:41 +01:00
Teo Mrnjavac
4861b63849 Trying to find out what makes a name pretty (PeerInfo prettyName). 2013-03-28 12:09:41 +01:00
Tomahawk CI
242941f1df Automatic merge of Transifex translations 2013-03-28 01:17:02 +01:00
Tomahawk CI
5fd44a97d8 Automatic merge of Transifex translations 2013-03-27 01:16:15 +01:00
Hugo Lindström
df5fb61ab6 Mandatory stylefix 2013-03-27 00:50:46 +01:00
Hugo Lindström
33fc2df655 Accept http[s] and play/open links from spotify. 2013-03-27 00:47:47 +01:00
Teo Mrnjavac
8285857ac2 Add platform and Tomahawk version checks to resolver installation. 2013-03-26 18:24:40 +01:00
Tomahawk CI
a0f0815f22 Automatic merge of Transifex translations 2013-03-26 01:16:37 +01:00
Tomahawk CI
1cc63297b9 Automatic merge of Transifex translations 2013-03-25 01:16:34 +01:00
Christian Muehlhaeuser
1ba2e094bc Merge pull request #177 from xhochy/fix/twk-1172
Escape ampersands in menu entry strings
2013-03-23 19:26:37 -07:00
Uwe L. Korn
6c08a27b3a Add ampersand escaping for Albums and Artists 2013-03-24 03:23:28 +01:00
Christian Muehlhaeuser
e82c56fff0 Merge pull request #174 from tomahawk-player/GeneratorLocking
Implement locking mechanism to only allow one thread to contact echonest...
2013-03-23 19:13:49 -07:00
Uwe L. Korn
031597f9e1 Escape ampersands in menu entry strings
* Fixes TWK-1172
2013-03-24 03:13:17 +01:00
Christian Muehlhaeuser
e9ed6893c5 Merge pull request #176 from xhochy/feature/verbose-in-help
Include --verbose in --help
2013-03-23 19:08:54 -07:00
Uwe L. Korn
3fd81dc72f Include --verbose in --help 2013-03-24 02:43:29 +01:00
Christian Muehlhaeuser
45563a6699 Merge pull request #175 from xhochy/feature/addtoplaylist
Add a 'Add to Playlist' entry to the ContextMenu
2013-03-23 18:42:12 -07:00
Uwe L. Korn
e29fa20cf4 Add a 'Add to Playlist' entry to the ContextMenu 2013-03-24 02:35:46 +01:00
Tomahawk CI
6946b7d453 Automatic merge of Transifex translations 2013-03-24 01:44:29 +01:00
Stefan Derkits
086a387f54 use ReadWriteLock instead of Mutex 2013-03-23 20:53:42 +01:00
Stefan Derkits
2782832204 Implement locking mechanism to only allow one thread to contact echonest for loading Styles, Moods & Genres 2013-03-23 17:20:26 +01:00
Teo Mrnjavac
c9387c552a Fix GridView layout bug on some GTK styles. 2013-03-23 12:33:32 +01:00
Christian Muehlhaeuser
fefc541e3e * Updated ChangeLog. 2013-03-23 09:10:18 +01:00
Christian Muehlhaeuser
a7ead0c387 Merge pull request #170 from tomahawk-player/resolverbundles
Resolver bundles support
2013-03-22 18:18:59 -07:00
Christian Muehlhaeuser
348e325a57 Merge pull request #168 from tomahawk-player/asynciodevices
Allow asynchronous requests of stream URLs from resolvers.
2013-03-22 18:17:40 -07:00
Christian Muehlhaeuser
c5025df8e4 Merge pull request #169 from ddqd/master
fix typing error in ru translation
2013-03-22 18:13:54 -07:00
Tomahawk CI
e6d80e5f89 Automatic merge of Transifex translations 2013-03-23 01:17:00 +01:00
Tomahawk CI
6d159041b5 Automatic merge of Transifex translations 2013-03-22 01:16:56 +01:00
Teo Mrnjavac
bc470b542a Install resolver axes in dirs with human-readable name instead of uuid. 2013-03-20 21:42:25 +01:00
Tomahawk CI
25b07561ec Automatic merge of Transifex translations 2013-03-20 01:16:28 +01:00
Christian Muehlhaeuser
f3b04a01e2 Merge pull request #171 from lliehu/add-context
Add context for placeholders in 3 UI messages added recently
2013-03-19 11:21:17 -07:00
Lasse Liehu
7980118516 Add context for placeholders in 3 UI messages added recently 2013-03-19 20:18:54 +02:00
Christian Muehlhaeuser
796df66885 * Some FdoNotifyPlugin cleanups. 2013-03-19 10:02:47 +01:00
Christian Muehlhaeuser
cb0abd9118 Merge pull request #166 from xhochy/feature/fdonotify-use-capabilities
Style notifications if the window manager supports it.
2013-03-19 01:56:44 -07:00
Tomahawk CI
1434ceed7c Automatic merge of Transifex translations 2013-03-19 01:16:59 +01:00
Christian Muehlhaeuser
11c0fd6cd6 * Fixed typo in error message. 2013-03-18 01:30:55 +01:00
Tomahawk CI
9f969021bd Automatic merge of Transifex translations 2013-03-18 01:17:34 +01:00
Teo Mrnjavac
6f7e713d6f Obsolete TODO is obsolete. 2013-03-17 13:51:15 +01:00
Teo Mrnjavac
256ba3798b Remove bundle directory on account removal. 2013-03-17 13:47:26 +01:00
Teo Mrnjavac
700ce6f18b Show resolver version for bundles, revision for packaged bundles. 2013-03-16 16:36:04 +01:00
ddqd
572e4a4f60 fix typing error on ru-translation 2013-03-16 10:46:10 +04:00
Teo Mrnjavac
4d2a9422a1 Added required scripts loading support to QtScriptResolver.
The good:
 * you can now add multiple scripts to be loaded for a single resolver before the main script, specified in metadata.json in a bundle.
The bad:
 * it adds some complexity, and it's not tested at all.
The ugly:
 * passing configuration from ResolverAccountFactory as QVariantHash, but that's not new,
 * changing ResolverFactoryFunc,
 * an added optional QStringList parameter to Pipeline::addScriptResolver,
 * the inevitable uselessness of this parameter in ScriptResolver.
2013-03-15 14:41:06 +01:00
Teo Mrnjavac
caa3a35510 Correctly extract. 2013-03-15 11:43:37 +01:00
Teo Mrnjavac
3b4962d586 Whoops :) 2013-03-14 19:11:18 +01:00
Teo Mrnjavac
129be9dbbf Use a more explicit parameter name. 2013-03-14 19:02:50 +01:00
Teo Mrnjavac
918545eddc Allow async streamUrl reports for custom IODeviceFactory resolvers. 2013-03-14 18:56:24 +01:00
Teo Mrnjavac
230fbdcef9 Return IODevices for track URLs through callbacks. 2013-03-14 16:11:46 +01:00
Teo Mrnjavac
056562d782 Load resolver metadata from JSON file rather than desktop file. 2013-03-13 23:11:05 +01:00
Tomahawk CI
20bfb48be7 Automatic merge of Transifex translations 2013-03-13 01:17:22 +01:00
Teo Mrnjavac
709c6e1da2 Headers. 2013-03-11 22:56:47 +01:00
Teo Mrnjavac
118b0a1cbf Found a better place to do bundle loading, and also load metadata. 2013-03-11 22:53:58 +01:00
Teo Mrnjavac
70baca7711 Initial commit for resolver bundles: proof of concept. 2013-03-10 13:02:14 +01:00
Teo Mrnjavac
3dd1db1aed Fix typo. 2013-03-06 19:38:12 +01:00
Jeff Mitchell
2b63e6e5bb Remove change from yesterday, as apparently m_lastCmdGuid doesn't do what I thought it does for local sources 2013-03-06 03:22:31 -05:00
Tomahawk CI
372ab8931a Automatic merge of Transifex translations 2013-03-06 01:16:56 +01:00
Teo Mrnjavac
dbf340f557 Fix ghost ScriptCollections on config change and potential crashes. 2013-03-05 18:07:49 +01:00
Teo Mrnjavac
5364dfaf40 Allow script resolvers to choose icons for their scriptcollections. 2013-03-05 10:46:04 +01:00
Teo Mrnjavac
7f82799a72 Allow resolvers to set a prettyName for their ScriptCollections. 2013-03-05 10:46:04 +01:00
Jeff Mitchell
9d827819d8 Add necessary hooks for hatchet dbcmd syncing 2013-03-05 01:24:48 -05:00
Teo Mrnjavac
c4fbcdfcbc Properly remove ScriptCollection ViewPages to prevent crash. 2013-03-02 20:41:09 +01:00
Christian Muehlhaeuser
b18fac950b * Building with BUILD_WITH_QT4 forces building with Qt4. 2013-03-02 07:22:31 +01:00
Christian Muehlhaeuser
7d0589ea0e * Style cleanup. 2013-03-02 07:13:57 +01:00
Christian Muehlhaeuser
b714481cd3 * Nicer cmake output. 2013-03-02 07:13:57 +01:00
Tomahawk CI
b947c25ff4 Automatic merge of Transifex translations 2013-02-27 01:17:49 +01:00
Teo Mrnjavac
232c66736a Implement track count for ScriptCollections. 2013-02-26 13:55:51 +01:00
Tomahawk CI
d046077656 Automatic merge of Transifex translations 2013-02-26 01:16:53 +01:00
Teo Mrnjavac
781a0149e0 Basic ScriptCollection filtering support. 2013-02-25 19:16:10 +01:00
Teo Mrnjavac
45f268e040 Add stylesheet to refresh scriptcollection button. 2013-02-25 19:15:12 +01:00
Tomahawk CI
b4eee71224 Automatic merge of Transifex translations 2013-02-25 01:17:46 +01:00
Christian Muehlhaeuser
dacd294de3 * Fixed missing copyright header. 2013-02-24 22:28:47 +01:00
Uwe L. Korn
971e84337f More translator friendly string formatting
* Add escaping of supplied strings since they may interfere with the
  xml-based markup.
2013-02-24 16:30:28 +01:00
Christian Muehlhaeuser
05e89b0323 * Log database commands in verbose mode. 2013-02-24 16:05:43 +01:00
Christian Muehlhaeuser
1f4e010764 * Don't let RecentPlaylistsModel try to load stuff before we're ready. 2013-02-24 16:05:32 +01:00
Christian Muehlhaeuser
400f52d10d * Make sure our private markAsReady method is connected (and hence called) first. Log a message when db is ready. 2013-02-24 14:09:57 +01:00
Christian Muehlhaeuser
3142e85af6 * Print out a warning and abort when trying to enqueue a DatabaseCommand before Database is ready. 2013-02-24 14:00:04 +01:00
Uwe L. Korn
689d97d689 Style album message 2013-02-24 12:44:01 +01:00
Uwe L. Korn
73e00e26c4 Style notifications if the window manager supports it. 2013-02-24 11:55:39 +01:00
Tomahawk CI
6d788a00af Automatic merge of Transifex translations 2013-02-24 01:16:59 +01:00
Teo Mrnjavac
2ec2e65d67 Fix what I assume is a typo. 2013-02-23 20:37:02 +01:00
Tomahawk CI
50376bcbff Automatic merge of Transifex translations 2013-02-23 01:17:02 +01:00
Jeff Mitchell
7ef99d3b9a Merge pull request #162 from xhochy/feature/fdonotify-dbus-async-reply
Make D-Bus call in fdonotify asynchronous
2013-02-22 07:20:19 -08:00
Tomahawk CI
4708c61a92 Automatic merge of Transifex translations 2013-02-22 01:16:57 +01:00
Jeff Mitchell
4c300f298d Add some variables in preparation for eventual per-source weighting 2013-02-21 10:32:44 -05:00
Uwe L. Korn
0a0b3717aa Remove qt-module from include path and add more distinctive name for callback 2013-02-21 14:25:31 +01:00
Jeff Mitchell
221a038568 Update CMakeLists.txt text 2013-02-20 13:24:10 -05:00
Jeff Mitchell
6883787551 Namespace the other account resource files as well 2013-02-20 13:12:41 -05:00
Hugo Lindström
35a3511ee5 SpotifyParse fix 2013-02-20 16:37:40 +01:00
Tomahawk CI
75537b9c20 Automatic merge of Transifex translations 2013-02-20 01:17:03 +01:00
Stefan Derkits
6e3b374dcb only load genre/style/mood from cache if it is empty 2013-02-19 16:45:58 +01:00
Teo Mrnjavac
10b84c863d Added tooltip. 2013-02-19 13:40:59 +01:00
Tomahawk CI
7bfa6cc08a Automatic merge of Transifex translations 2013-02-19 01:17:11 +01:00
Teo Mrnjavac
d7d15eda46 Added ScriptCollection refresh support. Also new header. 2013-02-18 23:04:10 +01:00
Teo Mrnjavac
76044bd054 Separate filter from FlexibleHeader, give collections their own header. 2013-02-18 23:04:10 +01:00
Hugo Lindström
a5f2b0eccd Update headers in QtScriptResolver 2013-02-18 20:27:35 +01:00
Jason Herskowitz
3c95d5714c Refresh icon 2013-02-18 12:44:39 -05:00
Tomahawk CI
1002b5f291 Automatic merge of Transifex translations 2013-02-18 01:16:42 +01:00
Teo Mrnjavac
55d8896ab9 Added description support to Collection, and fixed header text. 2013-02-17 17:39:06 +01:00
Teo Mrnjavac
74432a8712 Fix delegate to paint ScriptCollections nicely when selected. 2013-02-17 17:21:14 +01:00
Teo Mrnjavac
d97a530ee5 Fix description elision. 2013-02-17 13:27:25 +01:00
Teo Mrnjavac
13b5a3c911 Added proper ScriptCollection items, with delegate.
Showing collection info.
2013-02-17 13:27:24 +01:00
Christian Muehlhaeuser
b2b1ff1cba Revert "* Bumped libechonest requirement to 2.0.3."
This reverts commit 677bf098a5.
2013-02-16 10:57:48 +01:00
Christian Muehlhaeuser
677bf098a5 * Bumped libechonest requirement to 2.0.3. 2013-02-16 01:30:43 +01:00
Tomahawk CI
684aa658c2 Automatic merge of Transifex translations 2013-02-16 01:17:09 +01:00
Teo Mrnjavac
6f1a5d36a8 Don't crash when readding a resolver with ScriptCollection. 2013-02-15 14:03:25 +01:00
Teo Mrnjavac
1bf5787d74 Move ScriptCollection items to their own top-level category. 2013-02-15 14:03:25 +01:00
Christian Muehlhaeuser
176a9c8ce0 * Style cleanups. 2013-02-14 19:11:17 +01:00
Christian Muehlhaeuser
78e0475b9e * Properly detect the correct UPnP InternetGateway device. 2013-02-14 19:11:17 +01:00
Christian Muehlhaeuser
b6361abdd7 * Support https urls in Servent. 2013-02-14 19:11:17 +01:00
Tomahawk CI
862f684768 Automatic merge of Transifex translations 2013-02-14 01:16:57 +01:00
Christian Muehlhaeuser
006ae8b984 Merge pull request #165 from xhochy/feature/dynamic-notification-icon-sizes
Determine the notification icon size on the default font height.
2013-02-13 06:41:40 -08:00
Uwe L. Korn
f25608f52c Remove unused includes 2013-02-13 15:39:40 +01:00
Uwe L. Korn
93b06e5d95 Determine the notification icon size on the default font height. 2013-02-13 15:20:27 +01:00
Christian Muehlhaeuser
6a10b5e7e1 Merge pull request #164 from zizzfizzix/desktop
Desktop file changes
2013-02-13 05:49:16 -08:00
Kuba Serafinowski
5565845f55 Add Polish description entries to desktop file 2013-02-13 14:46:46 +01:00
Kuba Serafinowski
f236dc4403 Change hyphens to dashes in desktop file 2013-02-13 14:38:15 +01:00
Uwe L. Korn
6759f6c72f Make D-Bus call in fdonotify asynchronous 2013-02-13 12:30:30 +01:00
Tomahawk CI
461f650dbd Automatic merge of Transifex translations 2013-02-13 01:16:57 +01:00
Tomahawk CI
9f2149f1a3 Automatic merge of Transifex translations 2013-02-12 01:16:52 +01:00
Stefan Derkits
f24e593ad4 Merge pull request #153 from tomahawk-player/genreradio
Implement genreradio
2013-02-11 15:00:05 -08:00
Leo Franchi
4e5343a689 Merge pull request #161 from xhochy/fix/twk-563
Remove unused bundled quazip from thirdparty
2013-02-11 09:03:40 -08:00
Uwe L. Korn
8bf7534370 Remove unused bundled quazip from thirdparty 2013-02-11 17:23:09 +01:00
Tomahawk CI
115c8839e7 Automatic merge of Transifex translations 2013-02-10 01:16:51 +01:00
Jason Herskowitz
6bc1e3c8e2 Inbox icon for Teo 2013-02-09 12:07:37 -05:00
Tomahawk CI
b3280335d3 Automatic merge of Transifex translations 2013-02-09 01:16:46 +01:00
Christian Muehlhaeuser
df4e9193ec Merge pull request #160 from xhochy/fix/url-argument-position
As stated in --help the URL should always be the last argument
2013-02-08 15:46:59 -08:00
Teo Mrnjavac
caa1b65af2 Make compile. 2013-02-08 18:49:11 +01:00
Teo Mrnjavac
cd6bdc9e8b Merge pull request #158 from tomahawk-player/scriptcollection-ng
ScriptCollection support. Please test.
2013-02-08 09:39:09 -08:00
Teo Mrnjavac
0077ca5c8d Instead of getting statically defined capabilities at resolver startup,
have resolvers report their actual capabilities as soon as they know
for sure they have them.
2013-02-07 20:35:09 +01:00
Uwe L. Korn
615e2e4224 As stated in --help the URL should always be the last argument 2013-02-07 18:21:37 +01:00
Teo Mrnjavac
a4a0cb771f No implementations in headers. 2013-02-06 18:27:54 +01:00
Teo Mrnjavac
81af9b0e78 Style fix. 2013-02-06 18:10:21 +01:00
Teo Mrnjavac
68d3dd6631 Synchronous responses are for n00bs, only allow async. 2013-02-06 17:05:15 +01:00
Teo Mrnjavac
fffb00693a Allow some more time for slow slow Ampache. 2013-02-06 16:46:51 +01:00
Teo Mrnjavac
9a8f2e3306 Remove commented-out code. 2013-02-05 18:32:55 +01:00
Teo Mrnjavac
91c866c701 Remove unused code. 2013-02-05 18:06:21 +01:00
Teo Mrnjavac
cc577f9e4b Type enum in Collection.h to make domme happy :) 2013-02-05 18:02:02 +01:00
Tomahawk CI
1359ceb842 Automatic merge of Transifex translations 2013-02-05 01:16:41 +01:00
Teo Mrnjavac
ec4fe9babe Don't fail on timeout. 2013-02-04 22:59:25 +01:00
Teo Mrnjavac
90774b48f4 Make thread safe (I think). 2013-02-04 17:48:34 +01:00
Jason Herskowitz
63d18cee08 Cleanup Dock icons 2013-02-04 11:07:10 -05:00
Teo Mrnjavac
4aa8436b76 Obsolete comment is obsolete. 2013-02-04 16:59:20 +01:00
Teo Mrnjavac
c9e7730716 Make sure we eliminate all references to finished ScriptCommands. 2013-02-04 16:51:30 +01:00
Teo Mrnjavac
7ad402bb75 Fix typo. 2013-02-04 16:34:09 +01:00
Teo Mrnjavac
05c04d046f Do not report the same tracks multiple times. 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
6c5ad05d27 Added ScriptCommand_AllTracks. 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
48c56e81f7 Added ScriptCommand_AllAlbums. 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
3da3969ad2 Added timeout support to ScriptCommandQueue. 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
1c3941c16b Experimenting with ScriptCommands, added ScriptCommand_AllArtists. 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
0e566bc300 Move Collection.{h,cpp} to its own directory. 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
606ecb5865 Move all resolver-related classes to libtomahawk/resolvers 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
1e8767f022 We're pretty sure the results from Subsonic are good. 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
c6cb208e19 Replace stupid fix for track dupes in ScriptCollection with a real one. 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
4777a64ce7 Fixed duplicate tracks. But why do they happen? 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
4a2fd14d70 Fix after borked rebase. 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
9c5118c49a Add tracks to ScriptCollection. 2013-02-04 14:22:34 +01:00
Teo Mrnjavac
29cdcec3c6 Support albums in scriptcollection. 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
7f73c073be Fix collection page icons. 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
ad1e057078 Artists fetching support in scriptcollection. 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
cb7c646c2f Added artists/albums/tracks support in tomahawk.js 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
3a805cbe67 Have collections provide some strings of their own. 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
65741c3658 Route (almost) all artists/albums/tracks requests through Collections. 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
fb0de1d998 Remove debug button. 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
db60026a64 How about these? 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
3ee8555db7 Use resolver's icon in ScriptCollections. 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
df5fa2c55f Have SourceList populate the local source with ScriptCollections. 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
32780f79a0 Added support for showing multiple collections in a SourceItem. 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
3500195708 Added debug UI. 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
a767b7acc0 Rename Source::collection() to Source::dbCollection(). 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
28e681329e Saner check for db collection. 2013-02-04 14:22:33 +01:00
Teo Mrnjavac
e36d9294cc Note to self. 2013-02-04 14:22:32 +01:00
Teo Mrnjavac
c705676ec1 Have browsable resolvers return a collection. 2013-02-04 14:22:32 +01:00
Teo Mrnjavac
43ae736d61 Add capabilities support to ScriptResolver and QtScriptResolver. 2013-02-04 14:22:32 +01:00
Teo Mrnjavac
6138ea1605 Remove cruft and fix includes. 2013-02-04 14:22:32 +01:00
Teo Mrnjavac
9b4eef061f Initial commit for scriptable collection. Just a stub. 2013-02-04 14:22:32 +01:00
Tomahawk CI
1c5671d128 Automatic merge of Transifex translations 2013-02-03 01:16:41 +01:00
Hugo Lindström
cc05ececfe Merge pull request #157 from xhochy/feature/support-sharemyplaylist-spotify-urls2
Urlencode Spotify URLs to open playlist encoded in Apps links
2013-02-02 08:35:55 -08:00
Uwe L. Korn
23fe2de9b1 Fix coding style 2013-02-02 17:34:27 +01:00
Uwe L. Korn
c4b734fcf3 Urlencode Spotify URLs to open playlist encoded in Apps links 2013-02-02 16:03:23 +01:00
Teo Mrnjavac
4ad22a82d4 Fix scrolling in grid view. 2013-02-01 20:08:05 +01:00
Tomahawk CI
279c885dfe Automatic merge of Transifex translations 2013-02-01 01:16:39 +01:00
Tomahawk CI
c2aea47b6e Automatic merge of Transifex translations 2013-01-31 01:16:59 +01:00
Dominik Schmidt
a20ad44971 Mooaar debug output in the source tooltip 2013-01-30 20:06:31 +01:00
Dominik Schmidt
6b7e0e8180 Show nicknames from roster instead of xmpp ids 2013-01-30 20:06:31 +01:00
Tomahawk CI
e2ef8e5774 Automatic merge of Transifex translations 2013-01-30 01:16:50 +01:00
Leo Franchi
22985a1265 More debug 2013-01-29 13:58:33 -05:00
Leo Franchi
33429970f6 Add debug for version checks 2013-01-29 13:46:17 -05:00
Christian Muehlhaeuser
6b83da43ae * Support WavPack files. To be tested. 2013-01-29 19:21:11 +01:00
Christian Muehlhaeuser
fb4a22d305 * Some XmppSip cleanup. 2013-01-29 19:21:11 +01:00
Christian Muehlhaeuser
03fd8cc6fd * Some more Servent cleanup. 2013-01-29 19:21:11 +01:00
Leo Franchi
c0e77ac633 Remove debug again, bug squashed 2013-01-29 11:16:34 -05:00
Leo Franchi
54d5207939 Sync server data and do upgrade checks on either completion 2013-01-29 11:07:33 -05:00
Leo Franchi
9c1673bdf8 Add debug for version checks 2013-01-29 10:38:30 -05:00
Tomahawk CI
9a1656b455 Automatic merge of Transifex translations 2013-01-29 01:17:04 +01:00
Dominik Schmidt
7cfce98840 Don't set dbFriendlyName if it's empty 2013-01-28 17:24:27 +01:00
Dominik Schmidt
6dc053a91f Move Source::nodeId() implementation into cpp file 2013-01-28 17:24:27 +01:00
Dominik Schmidt
009c06f693 Fallback from Source::friendlyName() to dbFriendlyName() to nodeId() 2013-01-28 17:24:27 +01:00
Dominik Schmidt
537336adac Add contactId to PeerInfo and use it as connection name/dbfriendlyname 2013-01-28 17:24:27 +01:00
Dominik Schmidt
76b21e3742 Add dbFriendlyName to Source as fallback if the normal friendlyname is not available 2013-01-28 17:24:27 +01:00
Tomahawk CI
78c2a2e733 Automatic merge of Transifex translations 2013-01-28 01:17:05 +01:00
Dominik Schmidt
9046079c95 Streamline API: SipInfo::uniqname() -> SipInfo::nodeId() 2013-01-27 23:40:03 +01:00
Dominik Schmidt
d8f6378739 Streamline API: source->userName() -> source->nodeId() 2013-01-27 23:31:15 +01:00
Dominik Schmidt
1032cb5e05 Easier API is easier 2013-01-27 23:13:28 +01:00
Dominik Schmidt
3b65d7b474 Make source->username() always return a dbid (also for LocalSource) 2013-01-27 23:10:49 +01:00
Dominik Schmidt
ca0162735e Fix setting of own avatar in sip plugins 2013-01-27 22:40:52 +01:00
Christian Muehlhaeuser
c706d7b983 Merge pull request #155 from rockymontana/patch-2
* Continued swedish desktop file translation.
2013-01-27 12:17:28 -08:00
rm
6e88551e8a * Continued swedish desktop file translation. 2013-01-27 21:09:57 +01:00
Christian Muehlhaeuser
c6b42870af * Added swedish desktop file translation. 2013-01-27 20:52:04 +01:00
Christian Muehlhaeuser
1fad16f9ee * This should fix crashes / asserts in Servent. 2013-01-27 19:07:22 +01:00
Christian Muehlhaeuser
168c4f7ab7 * Re-introduce the asserts in Servent. They must not happen. 2013-01-27 17:58:15 +01:00
Stefan Derkits
643d71fd58 bump TOMAHAWK_SETTINGS_VERSION & write upgrade code (to remove file echonest_stylesandmoods.dat) 2013-01-27 17:04:47 +01:00
Stefan Derkits
3c8f3b102d style fixes in EchonestControl & EchonestGenerator 2013-01-27 17:04:47 +01:00
Stefan Derkits
f3df5013fa port Genre, Styles & Moods data in EchonestGenerator from data file to TomahawkCache 2013-01-27 17:04:47 +01:00
Stefan Derkits
5389a4c0a0 stylefix 2013-01-27 17:04:47 +01:00
Stefan Derkits
d4c7e8cc1b fix strange Bug with QComboBox 2013-01-27 17:04:47 +01:00
Stefan Derkits
6635b084f7 Implement genreradio (still buggy & needs https://github.com/Horrendus/libechonest atm) 2013-01-27 17:04:47 +01:00
Christian Muehlhaeuser
835e64fe55 * Turned ugly if/else into a switch. 2013-01-27 11:45:37 +01:00
Dominik Schmidt
9e9459486a Fix crash in claimOffer() 2013-01-27 01:36:22 +01:00
Christian Muehlhaeuser
3941a61ca9 Merge pull request #154 from zizzfizzix/patch-1
Update liblastfm URL in CMake output
2013-01-26 11:59:26 -08:00
Kuba
c5d8ca003b Update liblastfm URL in CMake output 2013-01-26 20:47:25 +01:00
Teo Mrnjavac
1ab26bba24 Add license header to Tomahawk.js, attribution from git blame and log. 2013-01-26 10:16:38 +01:00
Tomahawk CI
639ea4c397 Automatic merge of Transifex translations 2013-01-26 01:17:08 +01:00
Dominik Schmidt
cfe88c17f8 Comment out (hopefully) unneccessary assert 2013-01-25 15:41:07 +01:00
Tomahawk CI
be2e147cd7 Automatic merge of Transifex translations 2013-01-25 01:16:52 +01:00
Hugo Lindström
2853e05730 Ouch, a typo! 2013-01-24 20:41:01 +01:00
Hugo Lindström
0fea002e64 Keep the correct url. 2013-01-24 20:37:12 +01:00
Hugo Lindström
6ba5c3c98b Set correct name 2013-01-24 20:29:56 +01:00
Hugo Lindström
859a398da0 Remove extra debug 2013-01-24 19:53:57 +01:00
Hugo Lindström
96c5e7ebca Charts: Add DjShop.de 2013-01-24 19:53:57 +01:00
Dominik Schmidt
e345a42125 I am an idiot hahahahaha (Correct cherry-pick fail) 2013-01-24 14:12:49 +01:00
Dominik Schmidt
809330c877 Check for a valid xmpp id in the config widget 2013-01-24 14:02:57 +01:00
Dominik Schmidt
e750ea45a3 Refuse to close config dialogs with OK if settings are invalid 2013-01-24 14:01:33 +01:00
Dominik Schmidt
724f92e776 Introduce AccountConfigWidget type for handling errors later on 2013-01-24 14:01:20 +01:00
Dominik Schmidt
b01544c763 Fix runtime warnings 2013-01-24 04:04:22 +01:00
Dominik Schmidt
05ffd9c713 Fix more duplicated signal/slot connections that lead to gazillions of error messages 2013-01-24 04:04:10 +01:00
Dominik Schmidt
61e83c8581 Show connection erros in JobStatusView as well 2013-01-24 03:27:40 +01:00
Dominik Schmidt
d3bd359e1a Be more responsive about adding contacts 2013-01-24 02:48:28 +01:00
Dominik Schmidt
b5d1f8a8ba Automatically fill in server name 2013-01-24 01:31:07 +01:00
Tomahawk CI
362bf64db2 Automatic merge of Transifex translations 2013-01-24 01:17:16 +01:00
Dominik Schmidt
712561a490 Fix the gazillion of JABBER error: messages 2013-01-24 01:05:28 +01:00
Tomahawk CI
5599c9b995 Automatic merge of Transifex translations 2013-01-23 01:17:26 +01:00
Tomahawk CI
563daab032 Automatic merge of Transifex translations 2013-01-22 01:16:33 +01:00
Christian Muehlhaeuser
391f9951b7 * Remove code which seems to cause painting issues with some styles. 2013-01-21 15:45:48 +01:00
Christian Muehlhaeuser
28de1cd8c7 * Updated ChangeLog. 2013-01-21 14:16:24 +01:00
Christian Muehlhaeuser
e6b3884003 * Fixed track hover rect in sidebar. 2013-01-21 13:38:56 +01:00
Tomahawk CI
73977f58d3 Automatic merge of Transifex translations 2013-01-21 01:16:43 +01:00
Teo Mrnjavac
e724b144a4 PlayableModel has icon(), let's use it. 2013-01-20 22:48:19 +01:00
Christian Muehlhaeuser
e0b31b037a * Fixed now playing icon being squeezed in Charts delegate. 2013-01-20 06:43:35 +01:00
Christian Muehlhaeuser
60239668a7 * No need to check for HEADLESS in a widget. 2013-01-20 06:38:00 +01:00
Christian Muehlhaeuser
994f59440d * Always set a black foreground color for QueryLabels in AudioControls. 2013-01-20 06:24:58 +01:00
Christian Muehlhaeuser
da0664dfcb * QueryLabel doesn't support setTextPen any longer. 2013-01-20 06:22:18 +01:00
Christian Muehlhaeuser
bce56f280e * Always set the correct foreground / background colors for QueryLabel. 2013-01-20 06:21:59 +01:00
Tomahawk CI
2f9b6077ac Automatic merge of Transifex translations 2013-01-20 01:16:44 +01:00
Christian Muehlhaeuser
13bee7fad6 * Don't let NSSearchField grab Cmd + A. 2013-01-19 13:35:02 +01:00
Christian Muehlhaeuser
3737c251d4 * Fixed compiling on OSX. 2013-01-19 13:34:55 +01:00
Christian Muehlhaeuser
c3fb3df840 * Try to fix search field behaviour on OSX. 2013-01-19 13:34:18 +01:00
Christian Muehlhaeuser
8ef825aba7 * Style fixes for AccountManager. 2013-01-19 13:33:32 +01:00
Tomahawk CI
bf9701eb01 Automatic merge of Transifex translations 2013-01-19 01:16:40 +01:00
Christian Muehlhaeuser
f56c9d7da5 * Don't crash after d&d operation. 2013-01-18 10:36:01 +01:00
Christian Muehlhaeuser
62f540f4aa * Fixed comment typo. I can't get more pedantic than that, promised. 2013-01-18 04:03:28 +01:00
Dominik Schmidt
7e7ee84d9a Revert searching for specific Boost components 2013-01-18 01:28:37 +01:00
Dominik Schmidt
79fff5ce0e Set SOVERSION of libtomahawk to current Tomahawk version, we won't give any ABI guarantee in the foreseeable future 2013-01-18 01:27:45 +01:00
Tomahawk CI
a30f1f94e2 Automatic merge of Transifex translations 2013-01-18 01:16:58 +01:00
Dominik Schmidt
22c305162c Create hopefully rather sane TomahawkConfig.cmake 2013-01-18 01:15:17 +01:00
Jeff Mitchell
83e3ed2c50 Remove external TH account info 2013-01-17 16:10:33 -05:00
Jeff Mitchell
bfe59af38b Update in-tree-building TH account stuff 2013-01-17 15:44:39 -05:00
Dominik Schmidt
fe4c7543cd Add testing framework 2013-01-17 21:23:41 +01:00
Jeff Mitchell
6314436492 Find TH account dir if available, and compile websocketpp 2013-01-17 14:00:05 -05:00
Jeff Mitchell
b24d5e13cc Add area to gitignore 2013-01-17 11:34:28 -05:00
Jeff Mitchell
8ea6d2dd96 Finish the work begun in 0c68f559 to make scanning more thread-safe 2013-01-17 10:13:44 -05:00
Christian Muehlhaeuser
a7f6a6e129 * Update version to 0.6.99. 2013-01-17 12:38:56 +01:00
Christian Muehlhaeuser
3bf144779b Revert "* Disable BreakPad for testing."
This reverts commit a80803769d.
2013-01-17 12:36:54 +01:00
Christian Muehlhaeuser
d8a47f7ef6 Don't change scroll steps on OSX. 2013-01-17 12:00:51 +01:00
Teo Mrnjavac
b0d1e3813b Not just on X11 2013-01-17 11:48:36 +01:00
Teo Mrnjavac
e7014caecb Fix jumpy scrolling in Account Settings. 2013-01-17 11:46:49 +01:00
Dominik Schmidt
3d94dc13e7 Fix in-source build 2013-01-17 09:28:29 +01:00
Christian Muehlhaeuser
8521f88cb9 * Only check iodev when available. 2013-01-17 08:04:55 +01:00
Christian Muehlhaeuser
09a177ec51 * Don't crash in StreamConnection without m_iodev. 2013-01-17 07:47:29 +01:00
Tomahawk CI
e20d8c955e Automatic merge of Transifex translations 2013-01-17 01:16:43 +01:00
Jeff Mitchell
0c68f55937 Safer thread stopping, should fix an assert 2013-01-16 14:50:37 -05:00
Leo Franchi
c1ea6d7ea1 Blind try to fix mystery osx crash 2013-01-16 14:34:47 -05:00
Teo Mrnjavac
acf324279a Hide the share action from AudioControls if there's no InfoPlugin that
can be used to share a track.
2013-01-16 20:19:03 +01:00
Dominik Schmidt
7d94df120f Forward declare structs as structs 2013-01-16 19:03:14 +01:00
Christian Muehlhaeuser
a80803769d * Disable BreakPad for testing. 2013-01-16 15:06:34 +01:00
Leo Franchi
e20e29c88c Add CMakeDefine, thanks domme :) 2013-01-16 08:50:03 -05:00
Leo Franchi
3c5edea2af Slight clean up by adding a MOUNTAIN_LION define 2013-01-16 08:48:11 -05:00
Christian Muehlhaeuser
dcd253fdf6 * Fixed using tLog before Logger is initialized. 2013-01-16 14:37:09 +01:00
Christian Muehlhaeuser
c07ac1cc74 * Don't use tDebug in installTranslator. 2013-01-16 13:50:36 +01:00
Christian Muehlhaeuser
fbeee55c16 * Restore last fullscreen state on OSX. 2013-01-16 13:18:40 +01:00
Christian Muehlhaeuser
6e0fb0d597 * Added fullscreen action to ActionCollection. 2013-01-16 13:17:39 +01:00
Christian Muehlhaeuser
6736c69928 * TomahawkSettings can now store fullscreen mode. 2013-01-16 13:16:27 +01:00
Christian Muehlhaeuser
18ebcc1156 * Added Tomahawk::toggleFullscreen on OSX. 2013-01-16 13:15:46 +01:00
Christian Muehlhaeuser
dffd614c38 * Fixed memleak in drag & drop operations. 2013-01-16 12:41:26 +01:00
Tomahawk CI
2d94ece5c2 Automatic merge of Transifex translations 2013-01-16 03:25:36 +01:00
Dominik Schmidt
97a675dbf5 Add debug helper method to SipInfo 2013-01-16 02:30:10 +01:00
Dominik Schmidt
f292bb28d9 Don't think two SipInfos are equal just because they are both invalid ... stupid assumptions are stupid 2013-01-16 02:29:56 +01:00
Dominik Schmidt
438cb1b39b You shall not lie. Not even in CMake. 2013-01-16 01:17:35 +01:00
Dominik Schmidt
0a6f2b164a Build all folders inside src/accounts/ 2013-01-16 01:14:49 +01:00
Leo Franchi
550c10edcc Use JobStatusView error message for script errors 2013-01-15 18:50:12 -05:00
Dominik Schmidt
a692b206a3 Allow plugins to store arbitrary data in PeerInfo 2013-01-15 23:56:35 +01:00
Leo Franchi
f2b9619dad Don't crash if Query::get returns an invalid query 2013-01-15 17:42:15 -05:00
Dominik Schmidt
f128055e0b Install CMake files for usage in external plugins 2013-01-15 20:35:04 +01:00
Dominik Schmidt
8a43c70e54 Move AccountDllMacro to libtomahawk so it can be used by external plugins 2013-01-15 20:35:04 +01:00
Dominik Schmidt
e8af9d4c1f Rename add_tomahawk_plugin macro to tomahawk_add_plugin 2013-01-15 20:35:04 +01:00
Dominik Schmidt
5298401f17 Remove copy of Config.h.in from libtomahawk/ and install config.h from build dir 2013-01-15 20:35:03 +01:00
Dominik Schmidt
705b5c9e47 Clean up CMake for optional liblastfm 2013-01-15 20:35:03 +01:00
Dominik Schmidt
034515cc7e Show audio engine error on console even for headless builds 2013-01-15 20:35:03 +01:00
Dominik Schmidt
6eec99e5c7 Add now missing Logger.h include in PeerInfo.cpp 2013-01-15 20:35:03 +01:00
Lucas Lira Gomes
f7d430d77c * Install headers for libtomahawk 2013-01-15 20:35:03 +01:00
Lucas Lira Gomes
7966926d0c * Added methods to create playlists in SourceList class 2013-01-15 20:35:03 +01:00
Lucas Lira Gomes
16ef203411 * Removed some cruft 2013-01-15 20:35:03 +01:00
Lucas Lira Gomes
b75df83989 * Removed some unnecessary includes 2013-01-15 20:35:03 +01:00
Lucas Lira Gomes
34244ebbd0 * Moved all includes to utils/Logger.h from header files to their
respectives source files.
2013-01-15 20:35:03 +01:00
Lucas Lira Gomes
7968e2ee71 * Moved HeadlessCheck.h to libtomahawk directory 2013-01-15 20:35:03 +01:00
Lucas Lira Gomes
79e4647c1c * Made DatabaseImpl visible in the outside 2013-01-15 20:35:02 +01:00
Lucas Lira Gomes
811c0e618d * Made DatabaseCommand_CreateDynamicPlaylist and
DatabaseCommand_CreatePlaylist independent of ViewManager
2013-01-15 20:35:02 +01:00
Lucas Lira Gomes
4949e787a3 * Forwarded FuzzyIndex class declaration 2013-01-15 20:35:02 +01:00
Lucas Lira Gomes
1098ede0e8 * Made TomahawkSqlQuery visible in the outside 2013-01-15 20:35:02 +01:00
Lucas Lira Gomes
b5f5079dca * Added a getter to AccountManager::m_connected. 2013-01-15 20:35:02 +01:00
Lucas Lira Gomes
420720ae52 * Don't compile lastfm parts if liblastfm wasn't found. 2013-01-15 20:35:02 +01:00
Lucas Lira Gomes
0278f82c2a * JobStatusView::instance()->model()->addJob() calls will be ignored when ENABLE_HEADLESS is setted. 2013-01-15 20:35:02 +01:00
Lucas Lira Gomes
d8a7669df8 * Moved isLocalResult and isHttpResult to TomahawkUtils. 2013-01-15 20:35:02 +01:00
Jeff Mitchell
e4c0bd7f30 Remove extraneous debugging 2013-01-15 20:31:12 +01:00
Jeff Mitchell
7ebd08c791 Add debug 2013-01-15 20:31:12 +01:00
Jeff Mitchell
9b4cde3ab5 Fix an issue where the slider could get stuck 2013-01-15 20:31:12 +01:00
Dominik Schmidt
2d8abe99f7 Add SHARED_LIB option to add_tomahawk_plugin cmake macro
Usually plugins are built as modules in cmake, but for certain plugins
we need the possibility to link against them which is only possible with
shared libs
2013-01-15 20:31:12 +01:00
Dominik Schmidt
dd1418f1a3 Make factory name show up in accounts list 2013-01-15 20:31:12 +01:00
Jeff Mitchell
38211e166f Attempt to fix a potential scanner deadlock 2013-01-15 20:31:12 +01:00
Leo Franchi
d388b3608e One workaround attempt at fixing charts crash 2013-01-15 11:51:09 -05:00
Dominik Schmidt
e9d99f05c2 Update Toolchain-mingw32-openSUSE.cmake 2013-01-15 02:42:40 +01:00
Tomahawk CI
0b0592a398 Automatic merge of Transifex translations 2013-01-15 01:16:54 +01:00
Dominik Schmidt
f430738206 Don't rely on C++11 extensions 2013-01-14 23:23:26 +01:00
Dominik Schmidt
31c695e04a untested: Try to only take sources offline if user explicitly set xmpp-account offline not if connection failed 2013-01-14 23:23:26 +01:00
Dominik Schmidt
62df8a2edd Take sources offline if no peerinfos are available anymore 2013-01-14 23:23:26 +01:00
Dominik Schmidt
37882d5bcf Add missing emit 2013-01-14 23:23:26 +01:00
Dominik Schmidt
11569abdd7 Fix all the style issues! 2013-01-14 23:23:26 +01:00
Dominik Schmidt
b9ae0eec8e Add some useful data to the debugging tooltip 2013-01-14 23:23:26 +01:00
Dominik Schmidt
330eb81a0a Fix updating the DiagnosticsDialog when new peers are set online 2013-01-14 23:23:26 +01:00
Dominik Schmidt
80900a546d Properly init PeerInfo in its ctor 2013-01-14 23:23:26 +01:00
Teo Mrnjavac
352dd7588d Add PeerInfo to Source and SourceItem tooltips. 2013-01-14 23:23:26 +01:00
Teo Mrnjavac
259f496985 Unnecessary asserts are unnecessary. 2013-01-14 23:23:26 +01:00
Dominik Schmidt
07887a4ade Refactor peer announcement and disable Twitter until it's ported 2013-01-14 23:22:57 +01:00
Christian Muehlhaeuser
54d0f23a44 * Forward declaration and friend class out of namespace for GCC happiness. 2013-01-14 20:59:51 +01:00
Jeff Mitchell
cd3d42dc61 Add some methods for pushing supported info types out of infosystem; untested currently, but compiles 2013-01-14 14:39:30 -05:00
Leo Franchi
e5f207f0f5 THR-40: Set last.fm resolver icon so last.fm results have icon 2013-01-14 11:09:36 -05:00
Tomahawk CI
cc6b87c882 Automatic merge of Transifex translations 2013-01-14 01:16:50 +01:00
Christian Muehlhaeuser
d93f4f352c * Fixed README.md. 2013-01-13 08:53:43 +01:00
Christian Muehlhaeuser
143078699b * Fixed not emitting start with GStreamer Phonon backend. 2013-01-13 08:48:22 +01:00
Christian Muehlhaeuser
a973ea758a * Reset timer labels in onPlaybackLoading. 2013-01-13 08:47:09 +01:00
Tomahawk CI
b6bed8203c Automatic merge of Transifex translations 2013-01-13 01:16:45 +01:00
Teo Mrnjavac
1b466d7256 Remove obsolete Windows hacks. 2013-01-12 21:26:31 +01:00
Teo Mrnjavac
47439baa37 Draw SocialWidget, STPD and AccountsWidget the same way. 2013-01-12 18:22:21 +01:00
Christian Muehlhaeuser
7c462f8ff0 * Get rid of qDebug usage in TreeView. 2013-01-12 04:35:14 +01:00
Tomahawk CI
175ef4f03a Automatic merge of Transifex translations 2013-01-12 01:16:57 +01:00
Dominik Schmidt
228f41c76d Merge pull request #150 from TheOneRing/fix_love
fixed crash on love, when thumb buttons where not initialized
2013-01-11 06:54:18 -08:00
Patrick von Reth
0e619addc4 fixed crash on love, when thumb buttons where not initialized 2013-01-11 15:51:59 +01:00
Dominik Schmidt
346a24ed7f Merge pull request #149 from TheOneRing/fix_windows
Fix native windows build
2013-01-11 06:36:51 -08:00
Patrick von Reth
08369c0476 removed the dll from the installer script 2013-01-11 15:35:18 +01:00
Patrick von Reth
b16d418102 fixed windows build 2013-01-11 10:27:59 +01:00
Christian Muehlhaeuser
a70ece1523 Use https:// for github urls. 2013-01-11 06:11:56 +01:00
Christian Muehlhaeuser
1cf86ef96a Updated README.md. 2013-01-11 06:06:41 +01:00
Tomahawk CI
969b662283 Automatic merge of Transifex translations 2013-01-11 01:18:18 +01:00
Jason Herskowitz
4b5023487f Fix some of the double-arrow svgs that were blank for some reason 2013-01-10 14:34:24 -05:00
Jeff Mitchell
6f9fd2ce4b Fix spaces -> tabs 2013-01-10 11:41:00 -05:00
Jeff Mitchell
79efd35b9a Allow high res mode on Retina Display macs, fixes font rendering (but
not icons)
2013-01-10 11:36:46 -05:00
Leo Franchi
65911fc133 For extra safety check if resolver is null 2013-01-10 09:50:26 -05:00
Christian Muehlhaeuser
2243e401e3 * Updated ChangeLog. 2013-01-10 12:38:08 +01:00
Christian Muehlhaeuser
a52cb5c92d * Tweak AudioControls layout a bit. A lot less margins now. 2013-01-10 05:43:48 +01:00
Tomahawk CI
bdcfca8e71 Automatic merge of Transifex translations 2013-01-10 01:16:32 +01:00
Leo Franchi
3b373b5bb6 Also display required version 2013-01-09 18:47:30 -05:00
Leo Franchi
6301c84cb0 Depend on libechonest 2.0.2 2013-01-09 18:46:17 -05:00
Stefan Derkits
cbee90db4b Update README.md
change libechonest dependency to git until a new libechonest version is released
2013-01-09 21:51:18 +01:00
Stefan Derkits
7d94b0b575 Merge pull request #147 from tomahawk-player/songtype
add Echonest SongType Support
2013-01-09 12:45:03 -08:00
Dominik Schmidt
29ee62b554 Include dir optimization 2013-01-09 19:33:59 +01:00
Stefan Derkits
a8010e2bb4 don't compare any user visible strings 2013-01-09 16:23:41 +01:00
Stefan Derkits
41c688aa68 style & capitalization fixes 2013-01-09 15:34:44 +01:00
Stefan Derkits
7c64dd8c6b Merge branch 'master' of git://github.com/tomahawk-player/tomahawk into songtype 2013-01-09 15:14:48 +01:00
Teo Mrnjavac
93256dbea3 Fix spinner graphic being cut off on certain DPI values. 2013-01-09 12:40:08 +01:00
Christian Muehlhaeuser
04e8132384 * Speed up item detection & size-hint calculation for huge collections. 2013-01-09 09:06:04 +01:00
Tomahawk CI
655a5d8ecf Automatic merge of Transifex translations 2013-01-09 08:02:50 +01:00
Christian Muehlhaeuser
cc9aa4c6f7 * Try to fix source translation again. 2013-01-09 07:43:14 +01:00
Christian Muehlhaeuser
ed5bf55b16 * Mark AccountFactoryWrapper.ui's as non-translatable. 2013-01-09 07:38:05 +01:00
Tomahawk CI
f8394a2ef2 Automatic merge of Transifex translations 2013-01-09 07:25:50 +01:00
Christian Muehlhaeuser
de0684d42a * Updated authors in about dialog. 2013-01-09 07:21:48 +01:00
Christian Muehlhaeuser
7746070433 * Fixed pt_BR translation. 2013-01-09 07:20:13 +01:00
Christian Muehlhaeuser
63049af4c4 * Fixed english source translation. 2013-01-09 07:19:25 +01:00
Christian Muehlhaeuser
23fe27ed5e * Updated ChangeLog. 2013-01-09 07:17:22 +01:00
Christian Muehlhaeuser
c984e79669 * Updated AUTHORS file. 2013-01-09 07:14:24 +01:00
Christian Muehlhaeuser
453c0ab0c4 * Don't pre-initialize the charts widget. This will require some more changes in WhatsHotWidget - to be discussed with Hugo. 2013-01-09 07:06:37 +01:00
Christian Muehlhaeuser
c832e63c59 * Style fixes in WhatsHotWidget. 2013-01-09 07:06:02 +01:00
Christian Muehlhaeuser
dd79ffe7e7 * Always enfore the vertical scrollbar on Artist & Album pages to get rid of flickery resizing. 2013-01-09 06:18:05 +01:00
Christian Muehlhaeuser
ecec703191 * Fixed Artist & Album page layout when the items don't fill up the entire view. 2013-01-09 06:14:35 +01:00
Christian Muehlhaeuser
d9dbc7f160 * Support external links in artist biographies. 2013-01-09 05:55:12 +01:00
Christian Muehlhaeuser
04175de726 * Use the same color for drawing charts-position & album-position. 2013-01-09 05:07:31 +01:00
Christian Muehlhaeuser
34da802874 * Use an AlbumItemDelegate for Artist page. 2013-01-09 04:33:23 +01:00
Christian Muehlhaeuser
ee13c25607 * Manual signal connect is obsolete. 2013-01-09 04:33:07 +01:00
Christian Muehlhaeuser
ebcda30c96 * Temporary fixes until PlaylistChartItemDelegate becomes a proper PlaylistItemDelegate. 2013-01-09 04:32:27 +01:00
Tomahawk CI
ed151e1e3a Automatic merge of Transifex translations 2013-01-09 01:17:45 +01:00
Christian Muehlhaeuser
ea9bc9a4a2 * Updated copyright in about dialog to 2013. 2013-01-08 23:06:24 +01:00
Christian Muehlhaeuser
0a97127ea8 * Fixed AudioEngine not correctly emitting stopped(). 2013-01-08 21:42:46 +01:00
Christian Muehlhaeuser
d2c83bf614 * Auto resize tophits view and limit it to 20 tracks. 2013-01-08 21:42:46 +01:00
Teo Mrnjavac
64a2854130 Send invite on returnPressed. 2013-01-08 20:02:03 +01:00
Teo Mrnjavac
2e511318f5 Try to remove frame from toolbar on Windows 8. 2013-01-08 19:02:01 +01:00
Dominik Schmidt
fd0a80da1f Remove headers from CMakeLists.txt which don't need to be tracked anymore because of automoc 2013-01-08 15:47:03 +01:00
Leo Franchi
d66afb9ba3 Don't crash when listening along if a result in a sourceplaylistinterface's next is not valid 2013-01-08 09:36:41 -05:00
Stefan Derkits
e32d6c0adf Change QWeakPointer to QPointer to make it compile again 2013-01-08 13:24:11 +01:00
Stefan Derkits
1f5533a2f9 Merge branch 'master' of git://github.com/tomahawk-player/tomahawk into songtype 2013-01-08 11:49:17 +01:00
Dominik Schmidt
852af5737a Merge branch 'stable-0.6' 2013-01-08 03:14:23 +01:00
Dominik Schmidt
195e929c7c Merge branch 'stable-0.6' 2013-01-08 02:49:24 +01:00
Dominik Schmidt
bd2f8b0f36 qt5: don't build qnetwm 2013-01-08 02:06:11 +01:00
Tomahawk CI
c389ca832f Automatic merge of Transifex translations 2013-01-08 01:16:53 +01:00
Jason Herskowitz
68a24914b9 Update ChangeLog
Add linkback source icon to changelog.
2013-01-07 09:20:56 -05:00
Jason Herskowitz
66dae03798 Update ChangeLog
Line break to changelog
2013-01-06 19:53:04 -05:00
Jason Herskowitz
7a04f2242f Update ChangeLog 2013-01-06 19:52:27 -05:00
Tomahawk CI
1e896eb554 Automatic merge of Transifex translations 2013-01-07 01:17:36 +01:00
Dominik Schmidt
66d5d0a403 Remove addPeerManually method in TomahawkWindow 2013-01-06 21:33:54 +01:00
Dominik Schmidt
e9eb4bea15 Move TOMAHAWK_SYSTEM to TomahawkVersion.h 2013-01-06 21:18:47 +01:00
Dominik Schmidt
7fb494c780 Don't use CMAKE_SYSTEM for version info - too detailed build time information 2013-01-06 21:15:21 +01:00
Dominik Schmidt
f6f15223db Fix compilation for windows 2013-01-06 14:17:35 +01:00
Dominik Schmidt
d7ba7ead99 qt5: that should have ended up in the latest commit, too late for git
for me
2013-01-06 05:16:37 +01:00
Dominik Schmidt
110fb0100d qt5: cmake: allow building Tomahawk against Qt4 and Qt5 2013-01-06 03:52:20 +01:00
Dominik Schmidt
033e6a3059 qt5: port InfoPlugins 2013-01-06 02:30:26 +01:00
Dominik Schmidt
61c347d21b Add friendlyNames to InfoPlugins and show them in the diagnostics dialog 2013-01-06 01:41:15 +01:00
Tomahawk CI
fc4acddaae Automatic merge of Transifex translations 2013-01-06 01:16:36 +01:00
Dominik Schmidt
48278260c2 qt5: last commit needs additional include in TomahawkApp 2013-01-05 23:43:16 +01:00
Dominik Schmidt
8261b840c2 qt5: move Q_DECLARE_METATYPE( Tomahawk::InfoSystem::InfoSystemCache* ) to where it belongs 2013-01-05 23:42:27 +01:00
Dominik Schmidt
6f116fadb6 qt5: ifdeffing didn't work, needs to be commented out 2013-01-05 23:37:54 +01:00
Dominik Schmidt
8a373681b2 qt5: ifdef two Q_DECLARE_METATYPE invocations out, for some reason they fail with Qt5 2013-01-05 23:22:03 +01:00
Dominik Schmidt
d829c09e9d qt5: register AudioErrorCode meta type only once 2013-01-05 23:12:07 +01:00
Dominik Schmidt
069b3f9239 qt5: ifdef QFileSystemModel::reset() out, an equivalent in Qt5 seems to be missing 2013-01-05 23:05:21 +01:00
Dominik Schmidt
13eb29a93a qt5: port to new QViewHeader API 2013-01-05 23:03:19 +01:00
Dominik Schmidt
a7cec4648f qt5: don't forward declare QStyleOptionViewItemV4, we need the include for the typedef 2013-01-05 22:51:20 +01:00
Dominik Schmidt
4d693cf4c9 qt5: fix typo 2013-01-05 22:45:41 +01:00
Dominik Schmidt
248565fc6d qt5: qxtweb: woops, some Ascii/Latin1 replacements slipped through 2013-01-05 22:14:39 +01:00
Dominik Schmidt
e821e2ef21 qt5: include qtconcurrentrun.h instead of QtConcurrentRun 2013-01-05 22:08:48 +01:00
Dominik Schmidt
6a7baca8aa qt5: no implicit QString from QUuid 2013-01-05 22:06:19 +01:00
Dominik Schmidt
82753732b9 qt5: port QxtWeb and the web api 2013-01-05 21:54:39 +01:00
Dominik Schmidt
d02b6232bf QxtWeb: add missing header 2013-01-05 20:37:59 +01:00
Dominik Schmidt
517a96cd86 QxtWeb: fix compilation with QT_STRICT_ITERATORS 2013-01-05 20:18:43 +01:00
Dominik Schmidt
d7645a33be Update QxtWeb 2013-01-05 20:16:31 +01:00
Dominik Schmidt
7969f4ab51 qt5: port the Logger 2013-01-05 17:15:54 +01:00
Dominik Schmidt
45c6396b0a qt5: use QStandardPaths in TomahawkSettings 2013-01-05 16:46:42 +01:00
Dominik Schmidt
504c1aece2 qt5: clean up Find modules and don't depend on Qt(4) in them anymore 2013-01-05 16:41:06 +01:00
Dominik Schmidt
74941e8aa4 qt5: fix/rearrange includes 2013-01-05 07:50:37 +01:00
Dominik Schmidt
587e0ad927 qt5: use to/fromLatin1 instead of to/fromAscii 2013-01-05 07:21:08 +01:00
Dominik Schmidt
29e73ad47c qt5: add QUrl comp layer 2013-01-05 07:09:33 +01:00
Christian Muehlhaeuser
a8bd444e6c * Fixed broken signal / slot connect. 2013-01-05 03:22:03 +01:00
Christian Muehlhaeuser
0eaf9bf1e6 * Fixed compiling. 2013-01-05 03:17:56 +01:00
Dominik Schmidt
17a9ec4e20 qt5: don't use QWeakPointer to track QObject* anymore 2013-01-05 03:07:44 +01:00
Christian Muehlhaeuser
c98803b531 * Added context menu to PlayableCover. 2013-01-05 02:26:43 +01:00
Christian Muehlhaeuser
929a98c21a * Use new color roles. 2013-01-05 02:20:24 +01:00
Christian Muehlhaeuser
623b5866ed * Added new color roles for selection foreground / background. 2013-01-05 02:20:24 +01:00
Tomahawk CI
df0563620d Automatic merge of Transifex translations 2013-01-05 01:16:37 +01:00
Stefan Derkits
eb68bde21c Merge branch 'master' of git://github.com/tomahawk-player/tomahawk into songtype 2013-01-04 14:08:28 +01:00
Stefan Derkits
f43fd2b383 Added correct Widget Update after Startup & Summary Text for Song Type Support 2012-12-02 22:53:13 +01:00
Stefan Derkits
2f591f89d2 First Implementation of SongType support in Playlists (needs libechonest from https://github.com/Horrendus/libechonest) 2012-12-01 14:43:04 +01:00
1136 changed files with 147400 additions and 50606 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,4 @@
src/accounts/tomahawk
*-build/*
build/*
.directory
@@ -20,3 +21,5 @@ win/
gcc/
tags
.DS_Store
*.autosave
Doxyfile

13
AUTHORS
View File

@@ -4,15 +4,18 @@ Tomahawk is primarily authored by:
Contributors include:
* Leo Franchi <lfranchi@kde.org>
* Leo Franchi <lfranchi@tomahawk-player.org>
* Dominik Schmidt <domme@tomahawk-player.org>
* Jeff Mitchell <mitchell@kde.org>
* J Herskowitz <jherskow@gmail.com>
* Jeff Mitchell <jeff@tomahawk-player.org>
* J Herskowitz <j@tomahawk-player.org>
* Alejandro Wainzinger <aikawarazuni@gmail.com>
* Hugo Lindström <hugolm84@gmail.com>
* Hugo Lindström <hugo@tomahawk-player.org>
* Teo Mrnjavac <teo@kde.org>
* Michael Zanetti <dreadhead@follefuder.org>
* Christopher Reichert <christopher@tomahawk-player.org>
* Uwe L. Korn <uwelk@xhochy.com>
Thanks to:
* Harald Sitter <sitter@kde.org>
* Steve Robertson
* Syd Lawrence <syd@tomahawk-player.org>

View File

@@ -3,6 +3,16 @@ CMAKE_MINIMUM_REQUIRED( VERSION 2.8.6 )
SET( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules" )
CMAKE_POLICY(SET CMP0017 NEW)
IF ( CMAKE_VERSION VERSION_EQUAL 2.8.12 OR CMAKE_VERSION VERSION_GREATER 2.8.12 )
CMAKE_POLICY(SET CMP0022 NEW)
# TODO:
# Update to NEW and fix things up when we can depend on 2.8.12
CMAKE_POLICY(SET CMP0023 OLD)
ENDIF()
INCLUDE(CMakeDependentOption)
###
### Tomahawk application info
###
@@ -11,12 +21,22 @@ SET( TOMAHAWK_ORGANIZATION_DOMAIN "tomahawk-player.org" )
SET( TOMAHAWK_APPLICATION_NAME "Tomahawk" )
SET( TOMAHAWK_DESCRIPTION_SUMMARY "The social media player" )
IF( WIN32 )
SET( TOMAHAWK_SYSTEM "Windows" )
ELSEIF( APPLE )
SET( TOMAHAWK_SYSTEM "OS X" )
ELSEIF( UNIX )
SET( TOMAHAWK_SYSTEM "Linux")
ELSE()
SET( TOMAHAWK_SYSTEM "Uknown Platform, please let the Tomahawk team know, this actually happened" )
ENDIF()
SET( TOMAHAWK_VERSION_MAJOR 0 )
SET( TOMAHAWK_VERSION_MINOR 5 )
SET( TOMAHAWK_VERSION_PATCH 99 )
SET( TOMAHAWK_VERSION_MINOR 7 )
SET( TOMAHAWK_VERSION_PATCH 100 )
#SET( TOMAHAWK_VERSION_RC 0 )
SET( TOMAHAWK_TRANSLATION_LANGUAGES ar bg bn_IN ca cs de en el es fi fr hi_IN hu gl it ja lt pl pt_BR ru sv tr zh_CN zh_TW )
SET( TOMAHAWK_TRANSLATION_LANGUAGES ar bg bn_IN ca cs de en el es fi fr hi_IN hu gl it ja lt pl pt_BR ro ru sv tr zh_CN zh_TW )
# enforce proper symbol exporting on all platforms
add_definitions( "-fvisibility=hidden" )
@@ -26,10 +46,20 @@ add_definitions( "-DQT_STRICT_ITERATORS" )
# build options
option(BUILD_GUI "Build Tomahawk with GUI" ON)
option(BUILD_RELEASE "Generate TOMAHAWK_VERSION without GIT info" OFF)
option(BUILD_TESTS "Build Tomahawk with unit tests" ON)
option(BUILD_HATCHET "Build the Hatchet plugin" OFF)
option(BUILD_WITH_QT4 "Build Tomahawk with Qt4 no matter if Qt5 was found" ON)
option(WITH_BREAKPAD "Build with breakpad integration" ON)
option(WITH_CRASHREPORTER "Build with CrashReporter" ON)
option(WITH_BINARY_ATTICA "Enable support for downloading binary resolvers automatically" ON)
option(LEGACY_KDE_INTEGRATION "Install tomahawk.protocol file, deprecated since 4.6.0" OFF)
option(WITH_KDE4 "Build with support for KDE specific stuff" ON)
CMAKE_DEPENDENT_OPTION(WITH_UPOWER "Build with support for UPower events" ON
"UNIX;NOT APPLE" OFF)
CMAKE_DEPENDENT_OPTION(WITH_GNOMESHORTCUTHANDLER "Build with shortcut handler for GNOME" ON
"UNIX;NOT APPLE" OFF)
IF( CMAKE_SYSTEM_PROCESSOR MATCHES "arm" )
message(STATUS "Build of breakpad library disabled on this platform.")
@@ -50,15 +80,17 @@ ENDIF()
# base string used in release and unstable builds
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION_MAJOR}.${TOMAHAWK_VERSION_MINOR}.${TOMAHAWK_VERSION_PATCH} )
SET( TOMAHAWK_VERSION_SHORT "${TOMAHAWK_VERSION}" )
IF( TOMAHAWK_VERSION_RC )
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}rc${TOMAHAWK_VERSION_RC} )
ENDIF()
# additional info for non-release builds
IF( NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/" )
INCLUDE( CMakeDateStamp )
SET( TOMAHAWK_VERSION_DATE "${CMAKE_DATESTAMP_YEAR}${CMAKE_DATESTAMP_MONTH}${CMAKE_DATESTAMP_DAY}" )
IF( TOMAHAWK_VERSION_DATE GREATER 0)
IF( TOMAHAWK_VERSION_DATE GREATER 0 )
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}.${TOMAHAWK_VERSION_DATE} )
ENDIF()
@@ -81,40 +113,132 @@ INCLUDE( GNUInstallDirs )
# installer creation
INCLUDE( TomahawkCPack.cmake )
#deps
# deps
INCLUDE( MacroOptionalFindPackage )
INCLUDE( MacroLogFeature )
# Check if we need qtgui:
SET(NEEDED_QT4_COMPONENTS QtCore QtXml QtNetwork )
IF( NOT BUILD_GUI )
ADD_DEFINITIONS( -DENABLE_HEADLESS )
MESSAGE( STATUS "Building Tomahawk ${TOMAHAWK_VERSION} in HEADLESS mode ***" )
ELSE()
MESSAGE( STATUS "Building Tomahawk ${TOMAHAWK_VERSION} full GUI version ***" )
LIST(APPEND NEEDED_QT4_COMPONENTS "QtGui" "QtWebkit" "QtUiTools" )
ENDIF()
IF( BUILD_GUI AND UNIX AND NOT APPLE )
FIND_PACKAGE( X11 )
ENDIF()
macro_optional_find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS} )
macro_log_feature(QT4_FOUND "Qt" "A cross-platform application and UI framework" "http://qt.nokia.com" TRUE "" "If you see this, although libqt4-devel is installed, check whether the \n qtwebkit-devel package and whatever contains QtUiTools is installed too")
macro_optional_find_package(Phonon 4.5.0)
macro_log_feature(PHONON_FOUND "Phonon" "The Phonon multimedia library" "http://phonon.kde.org" TRUE "" "")
if(PHONON_FOUND)
message(STATUS "Phonon found; ensure that phonon-vlc is at least 0.4")
# headless mode
if( NOT BUILD_GUI )
add_definitions( -DENABLE_HEADLESS )
message( STATUS "Building Tomahawk ${TOMAHAWK_VERSION} in HEADLESS mode ***" )
else()
message( STATUS "Building Tomahawk ${TOMAHAWK_VERSION} full GUI version ***" )
endif()
macro_optional_find_package(Echonest 2.0.0)
macro_log_feature(ECHONEST_FOUND "Echonest" "Qt library for communicating with The Echo Nest" "http://projects.kde.org/libechonest" TRUE "" "libechonest 2.0.0 is needed for dynamic playlists and the infosystem")
if( NOT BUILD_WITH_QT4 )
find_package(Qt5Core QUIET)
if( Qt5Core_DIR )
find_package(Qt5Widgets QUIET)
message(STATUS "Found Qt5! Be aware that Qt5-support is still experimental and not officially supported!")
if( UNIX AND NOT APPLE )
# We need this to find the paths to qdbusxml2cpp and co
find_package(Qt5DBus REQUIRED)
endif()
if(WIN32)
find_package(Qt5WinExtras REQUIRED)
endif()
macro(qt_wrap_ui)
qt5_wrap_ui(${ARGN})
endmacro()
macro(qt_add_resources)
qt5_add_resources(${ARGN})
endmacro()
find_package(Qt5LinguistTools REQUIRED)
macro(qt_add_translation)
qt5_add_translation(${ARGN})
endmacro()
macro(qt_add_dbus_interface)
qt5_add_dbus_interface(${ARGN})
endmacro()
macro(qt_add_dbus_adaptor)
qt5_add_dbus_adaptor(${ARGN})
endmacro()
macro(setup_qt)
endmacro()
set(QT_RCC_EXECUTABLE "${Qt5Core_RCC_EXECUTABLE}")
#FIXME: CrashReporter depends on deprecated QHttp
set(WITH_KDE4 OFF)
endif()
endif()
if( NOT Qt5Core_DIR )
message(STATUS "Could not find Qt5, searching for Qt4 instead...")
set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork")
if( BUILD_GUI )
list(APPEND NEEDED_QT4_COMPONENTS "QtGui" "QtWebkit" "QtUiTools" "QtSvg")
endif()
if( BUILD_TESTS )
list(APPEND NEEDED_QT4_COMPONENTS "QtTest")
endif()
macro_optional_find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS} )
macro_log_feature(QT4_FOUND "Qt" "A cross-platform application and UI framework" "http://qt.nokia.com" TRUE "" "If you see this, although libqt4-devel is installed, check whether the \n qtwebkit-devel package and whatever contains QtUiTools is installed too")
macro(qt5_use_modules)
endmacro()
macro(qt_wrap_ui)
qt4_wrap_ui(${ARGN})
endmacro()
macro(qt_add_resources)
qt4_add_resources(${ARGN})
endmacro()
macro(qt_add_translation)
qt4_add_translation(${ARGN})
endmacro()
macro(qt_add_dbus_interface)
qt4_add_dbus_interface(${ARGN})
endmacro()
macro(qt_add_dbus_adaptor)
qt4_add_dbus_adaptor(${ARGN})
endmacro()
macro(setup_qt)
if( NOT BUILD_GUI )
set(QT_DONT_USE_QTGUI TRUE)
endif()
if( UNIX AND NOT APPLE )
set(QT_USE_QTDBUS TRUE)
endif()
set(QT_USE_QTSQL TRUE)
set(QT_USE_QTNETWORK TRUE)
set(QT_USE_QTXML TRUE)
set(QT_USE_QTWEBKIT TRUE)
include( ${QT_USE_FILE} )
endmacro()
endif()
if( Qt5Core_DIR )
set( TOMAHAWK_QT5 TRUE )
else( Qt5Core_DIR )
set( TOMAHAWK_QT5 FALSE )
endif( Qt5Core_DIR )
if( BUILD_GUI AND UNIX AND NOT APPLE )
find_package( X11 )
endif()
macro_optional_find_package(Echonest 2.2.0)
macro_log_feature(ECHONEST_FOUND "Echonest" "Qt library for communicating with The Echo Nest" "http://projects.kde.org/libechonest" TRUE "" "libechonest 2.2.0 is needed for dynamic playlists and the infosystem")
macro_optional_find_package(CLucene 0.9.23)
macro_log_feature(CLucene_FOUND "CLucene" "The open-source, C++ search engine" "http://clucene.sf.net" TRUE "" "CLucene is used for indexing the collection")
macro_optional_find_package(QJSON)
macro_optional_find_package(QJSON 0.8.1)
macro_log_feature(QJSON_FOUND "QJson" "Qt library that maps JSON data to QVariant objects" "http://qjson.sf.net" TRUE "" "libqjson is used for encoding communication between Tomahawk instances")
macro_optional_find_package(Taglib 1.6.0)
@@ -122,13 +246,18 @@ macro_log_feature(TAGLIB_FOUND "TagLib" "Audio Meta-Data Library" "http://develo
include( CheckTagLibFileName )
check_taglib_filename( COMPLEX_TAGLIB_FILENAME )
macro_optional_find_package(Boost)
macro_log_feature(Boost_FOUND "Boost" "Provides free peer-reviewed portable C++ source libraries" "http://www.boost.org" TRUE "" "") #FIXME: give useful explaination
find_package(Boost REQUIRED)
macro_log_feature(Boost_FOUND "Boost" "Provides free peer-reviewed portable C++ source libraries" "http://www.boost.org" TRUE "" "") #FIXME: give useful explanation
macro_optional_find_package(QCA2)
macro_log_feature(QCA2_FOUND "QCA2" "Provides encryption and signing functions required for Grooveshark resolver" "http://delta.affinix.com/qca/" TRUE "" "")
macro_log_feature(QCA2_FOUND "QCA2" "Provides encryption and signing functions necessary for some resolvers and accounts" "http://delta.affinix.com/qca/" TRUE "" "")
macro_optional_find_package(LibAttica 0.4.0)
if( TOMAHAWK_QT5 )
macro_optional_find_package(KF5Attica 1.0.0)
set(LIBATTICA_FOUND ${KF5Attica_FOUND})
else()
macro_optional_find_package(LibAttica 0.4.0)
endif()
macro_log_feature(LIBATTICA_FOUND "libattica" "Provides support for installation of resolvers from the Tomahawk website" "https://projects.kde.org/projects/kdesupport/attica" TRUE "" "")
macro_optional_find_package(QuaZip)
@@ -136,7 +265,7 @@ macro_log_feature(QuaZip_FOUND "QuaZip" "Provides support for extracting downloa
macro_optional_find_package(Jreen 1.0.5)
macro_log_feature(JREEN_FOUND "Jreen" "Qt XMPP Library" "http://qutim.org/jreen / https://github.com/euroelessar/jreen" FALSE "" "Jreen is needed for the Jabber SIP plugin.\n")
if(PC_JREEN_VERSION STREQUAL "1.1.0")
if( PC_JREEN_VERSION STREQUAL "1.1.0" )
message(FATAL_ERROR "Jreen 1.1.0 has a very annoying bug that breaks accepting auth requests in Tomahawk. Please upgrade to 1.1.1 or downgrade to 1.0.5.")
endif()
@@ -144,12 +273,46 @@ macro_optional_find_package(QTweetLib)
macro_log_feature(QTWEETLIB_FOUND "QTweetLib" "Qt Twitter Library" "https://github.com/minimoog/QTweetLib" FALSE "" "QTweetLib is needed for the Twitter SIP plugin.\n")
macro_optional_find_package(LibLastFm 1.0.0)
macro_log_feature(LIBLASTFM_FOUND "liblastfm" "Qt library for the Last.fm webservices" "https://github.com/eartle/liblastfm" TRUE "" "liblastfm is needed for scrobbling tracks to Last.fm and fetching cover artwork")
macro_log_feature(LIBLASTFM_FOUND "liblastfm" "Qt library for the Last.fm webservices" "https://github.com/lastfm/liblastfm" TRUE "" "liblastfm is needed for scrobbling tracks to Last.fm and fetching cover artwork")
IF( WIN32 )
if( NOT APPLE )
if( TOMAHAWK_QT5 )
macro_optional_find_package(Qt5Keychain 0.1.0)
else()
macro_optional_find_package(QtKeychain 0.1.0)
endif()
macro_log_feature(QTKEYCHAIN_FOUND "QtKeychain" "Provides support for secure credentials storage" "https://github.com/frankosterfeld/qtkeychain" TRUE "" "")
endif()
if( UNIX AND NOT APPLE )
macro_optional_find_package(TelepathyQt 0.9.3)
if ( TOMAHAWK_QT5 )
macro_log_feature(TelepathyQt5_FOUND "Telepathy-Qt" "Telepathy-Qt is a Qt high-level binding for Telepathy, a D-Bus framework for unifying real time communication." FALSE "" "Telepathy-Qt is needed for sharing Jabber/GTalk accounts with Telepathy.\n")
else ( TOMAHAWK_QT5)
macro_log_feature(TelepathyQt4_FOUND "Telepathy-Qt" "Telepathy-Qt is a Qt high-level binding for Telepathy, a D-Bus framework for unifying real time communication." FALSE "" "Telepathy-Qt is needed for sharing Jabber/GTalk accounts with Telepathy.\n")
endif()
endif()
# we need pthreads too
macro_optional_find_package(Threads)
macro_log_feature(THREADS_FOUND "Threads" "Threading Library" "" TRUE "" "Platform specific library for threading")
### QtSparkle
if( WIN32 )
macro_optional_find_package(QtSparkle)
macro_log_feature(QTSPARKLE_FOUND "qtsparkle" "Library for creating auto updaters written in Qt" "https://github.com/davidsansome/qtsparkle" FALSE "" "")
ENDIF( WIN32 )
endif( WIN32 )
#TODO: support external qxt
set(QXTWEB_FOUND TRUE)
set(QXTWEB_LIBRARIES qxtweb-standalone)
set(QXTWEB_INCLUDE_DIRS ${THIRDPARTY_DIR}/qxt/qxtweb-standalone/web ${THIRDPARTY_DIR}/qxt/qxtweb-standalone/network ${THIRDPARTY_DIR}/qxt/qxtweb-standalone/core ${CMAKE_CURRENT_BINARY_DIR})
### libportfwd
set(LIBPORTFWD_INCLUDE_DIR ${THIRDPARTY_DIR}/libportfwd/include)
set(LIBPORTFWD_LIBRARY tomahawk_portfwd)
set(LIBPORTFWD_LIBRARIES ${LIBPORTFWD_LIBRARY})
add_subdirectory(${THIRDPARTY_DIR}/libportfwd)
#### submodules start
# automatically init submodules here, don't delete this code we may add submodules again
@@ -165,24 +328,23 @@ ENDIF( WIN32 )
#### submodules end
### libportfwd
SET( LIBPORTFWD_INCLUDE_DIR ${THIRDPARTY_DIR}/libportfwd/include )
SET( LIBPORTFWD_LIBRARY tomahawk_portfwd )
SET( LIBPORTFWD_LIBRARIES ${LIBPORTFWD_LIBRARY} )
ADD_SUBDIRECTORY( ${THIRDPARTY_DIR}/libportfwd )
# we need pthreads too
macro_optional_find_package(Threads)
macro_log_feature(THREADS_FOUND "Threads" "Threading Library" "" TRUE "" "Platform specific library for threading")
if (WITH_KDE4)
macro_optional_find_package(KDE4)
macro_optional_find_package(KDE4Installed)
endif(WITH_KDE4)
macro_log_feature(KDE4_FOUND "KDE4" "Provides support for configuring Telepathy Accounts from inside Tomahawk" "https://www.kde.org" FALSE "" "")
macro_optional_find_package(KDE4)
macro_optional_find_package(KDE4Installed)
if(NOT Phonon_FOUND)
macro_optional_find_package(Phonon 4.5.0)
endif()
macro_log_feature(Phonon_FOUND "Phonon" "The Phonon multimedia library" "http://phonon.kde.org" TRUE "" "")
# this was used before we had FindKDE4Installed, just leaving it here to keep the flags
# for future kde integration
if(Phonon_FOUND)
message(STATUS "Phonon found; ensure that phonon-vlc is at least 0.4")
endif()
# macro_optional_find_package(KDE4)
IF(KDE4_FOUND)
IF( KDE4_FOUND OR Phonon_FOUND )
IF( CMAKE_C_FLAGS )
# KDE4 adds and removes some compiler flags that we don't like
# (only for gcc not for clang e.g.)
@@ -204,19 +366,64 @@ CONFIGURE_FILE(
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
# KDE4 defines an uninstall target for us automatically
IF( NOT KDE4_FOUND )
ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
ENDIF()
# KDE4 defines an uninstall target for us automatically (and at least with Qt4 Phonon does as well no matter if kdelibs was found)
# IF( NOT KDE4_FOUND )
# ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
# ENDIF()
IF( NOT APPLE )
# Make linking as strict on linux as it is on osx. Then we don't break linking on mac so often
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--no-undefined" )
ENDIF( NOT APPLE )
# Early configure these files as we need them later on
configure_file(TomahawkUse.cmake.in "${PROJECT_BINARY_DIR}/TomahawkUse.cmake" @ONLY)
file(COPY TomahawkAddPlugin.cmake DESTINATION "${PROJECT_BINARY_DIR}")
file(COPY TomahawkAddLibrary.cmake DESTINATION "${PROJECT_BINARY_DIR}")
SET( TOMAHAWK_LIBRARIES tomahawklib )
SET( TOMAHAWK_WIDGETS_LIBRARIES tomahawk-widgets )
SET( TOMAHAWK_PLAYDARAPI_LIBRARIES tomahawk-playdarapi )
ADD_SUBDIRECTORY( thirdparty )
ADD_SUBDIRECTORY( src )
ADD_SUBDIRECTORY( src/libtomahawk )
ADD_SUBDIRECTORY( admin )
# Add all targets to the build-tree export set
set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Tomahawk" CACHE PATH "Installation directory for CMake files")
set(CMAKE_INSTALL_FULL_CMAKEDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_CMAKEDIR}")
export(TARGETS tomahawklib
FILE "${PROJECT_BINARY_DIR}/TomahawkLibraryDepends.cmake")
# Export the package for use from the build-tree
# (this registers the build-tree with a global CMake-registry)
export(PACKAGE Tomahawk)
# Create a TomahawkBuildTreeSettings.cmake file for the use from the build tree
configure_file(TomahawkBuildTreeSettings.cmake.in "${PROJECT_BINARY_DIR}/TomahawkBuildTreeSettings.cmake" @ONLY)
# Create the TomahawkConfig.cmake and TomahawkConfigVersion files
file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_CMAKEDIR}" "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
configure_file(TomahawkConfig.cmake.in "${PROJECT_BINARY_DIR}/TomahawkConfig.cmake" @ONLY)
configure_file(TomahawkConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/TomahawkConfigVersion.cmake" @ONLY)
# Install the cmake files
install(
FILES
"${PROJECT_BINARY_DIR}/TomahawkConfig.cmake"
"${PROJECT_BINARY_DIR}/TomahawkConfigVersion.cmake"
"${PROJECT_BINARY_DIR}/TomahawkUse.cmake"
"${PROJECT_BINARY_DIR}/TomahawkAddPlugin.cmake"
"${PROJECT_BINARY_DIR}/TomahawkAddLibrary.cmake"
DESTINATION
"${CMAKE_INSTALL_CMAKEDIR}"
)
# Install the export set for use with the install-tree
install(
EXPORT
TomahawkLibraryDepends
DESTINATION
"${CMAKE_INSTALL_CMAKEDIR}"
)

View File

@@ -1,99 +0,0 @@
MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
SET(DEFAULT_ARGS)
FOREACH(arg_name ${arg_names})
SET(${prefix}_${arg_name})
ENDFOREACH(arg_name)
FOREACH(option ${option_names})
SET(${prefix}_${option} FALSE)
ENDFOREACH(option)
SET(current_arg_name DEFAULT_ARGS)
SET(current_arg_list)
FOREACH(arg ${ARGN})
SET(larg_names ${arg_names})
LIST(FIND larg_names "${arg}" is_arg_name)
IF (is_arg_name GREATER -1)
SET(${prefix}_${current_arg_name} ${current_arg_list})
SET(current_arg_name ${arg})
SET(current_arg_list)
ELSE (is_arg_name GREATER -1)
SET(loption_names ${option_names})
LIST(FIND loption_names "${arg}" is_option)
IF (is_option GREATER -1)
SET(${prefix}_${arg} TRUE)
ELSE (is_option GREATER -1)
SET(current_arg_list ${current_arg_list} ${arg})
ENDIF (is_option GREATER -1)
ENDIF (is_arg_name GREATER -1)
ENDFOREACH(arg)
SET(${prefix}_${current_arg_name} ${current_arg_list})
ENDMACRO(PARSE_ARGUMENTS)
MACRO(CAR var)
SET(${var} ${ARGV1})
ENDMACRO(CAR)
MACRO(CDR var junk)
SET(${var} ${ARGN})
ENDMACRO(CDR)
macro(add_tomahawk_plugin)
parse_arguments(PLUGIN
"SOURCES;UI;LINK_LIBRARIES;TYPE;EXPORT_MACRO;COMPILE_DEFINITIONS"
"NO_INSTALL"
${ARGN}
)
car(PLUGIN_NAME ${PLUGIN_DEFAULT_ARGS})
# message("*** Arguments for ${PLUGIN_NAME}")
# message("Sources: ${PLUGIN_SOURCES}")
# message("Link libraries: ${PLUGIN_LINK_LIBRARIES}")
# message("UI: ${PLUGIN_UI}")
# message("TYPE: ${PLUGIN_TYPE}")
# message("EXPORT_MACRO: ${PLUGIN_EXPORT_MACRO}")
# create target name once for convenience
set(target "tomahawk_${PLUGIN_TYPE}_${PLUGIN_NAME}")
# qt stuff
include_directories(${CMAKE_CURRENT_BINARY_DIR})
if(PLUGIN_UI)
qt4_wrap_ui(PLUGIN_UI_SOURCES ${PLUGIN_UI})
list(APPEND PLUGIN_SOURCES ${PLUGIN_UI_SOURCES})
endif()
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/resources.qrc")
qt4_add_resources(PLUGIN_RC_SOURCES "resources.qrc")
list(APPEND PLUGIN_SOURCES ${PLUGIN_RC_SOURCES})
unset(PLUGIN_RC_SOURCES)
endif()
# add target
add_library(${target} MODULE ${PLUGIN_SOURCES})
# definitions - can this be moved into set_target_properties below?
add_definitions(${QT_DEFINITIONS})
set_target_properties(${target} PROPERTIES AUTOMOC TRUE COMPILE_DEFINITIONS ${PLUGIN_EXPORT_MACRO})
if(PLUGIN_COMPILE_DEFINITIONS)
# Dear CMake, i hate you! Sincerely, domme
# At least in CMake 2.8.8, you CANNOT set more than one COMPILE_DEFINITIONS value
# only takes the first one if called multiple times or bails out with wrong number of arguments
# when passing in a list, thus i redefine the export macro here in hope it won't mess up other targets
add_definitions( "-D${PLUGIN_EXPORT_MACRO}" )
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${PLUGIN_COMPILE_DEFINITIONS})
endif()
# add link targets
target_link_libraries(${target} tomahawklib)
if(PLUGIN_LINK_LIBRARIES)
target_link_libraries(${target} ${PLUGIN_LINK_LIBRARIES})
endif()
# make installation optional, maybe useful for dummy plugins one day
if(NOT PLUGIN_NO_INSTALL)
include(GNUInstallDirs)
install(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
endmacro()

View File

@@ -7,11 +7,6 @@
# (c) Dominik Schmidt <dev@dominik-schmidt.de>
#
# Dependencies
if(NOT QT4_FOUND)
find_package(Qt4 REQUIRED)
endif()
# Include dir
find_path(LIBLASTFM_INCLUDE_DIR
# Track.h doesn't exist in liblastfm-0.3.1, was called Track back then

View File

@@ -11,27 +11,14 @@
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
macro(_phonon_find_version)
set(_phonon_namespace_header_file "${PHONON_INCLUDE_DIR}/phonon/phononnamespace.h")
if (APPLE AND EXISTS "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
set(_phonon_namespace_header_file "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
endif (APPLE AND EXISTS "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
file(READ ${_phonon_namespace_header_file} _phonon_header LIMIT 5000 OFFSET 1000)
string(REGEX MATCH "define PHONON_VERSION_STR \"(4\\.[0-9]+\\.[0-9a-z]+)\"" _phonon_version_match "${_phonon_header}")
set(PHONON_VERSION "${CMAKE_MATCH_1}")
endmacro(_phonon_find_version)
# the dirs listed with HINTS are searched before the default sets of dirs
find_library(PHONON_LIBRARY NAMES phonon HINTS ${KDE4_LIB_INSTALL_DIR} ${QT_LIBRARY_DIR})
find_path(PHONON_INCLUDE_DIR NAMES phonon/phonon_export.h HINTS ${KDE4_INCLUDE_INSTALL_DIR} ${QT_INCLUDE_DIR} ${INCLUDE_INSTALL_DIR} ${QT_LIBRARY_DIR})
if(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
set(PHONON_LIBS ${phonon_LIB_DEPENDS} ${PHONON_LIBRARY})
set(PHONON_INCLUDES ${PHONON_INCLUDE_DIR}/KDE ${PHONON_INCLUDE_DIR})
_phonon_find_version()
endif(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Phonon DEFAULT_MSG PHONON_INCLUDE_DIR PHONON_LIBRARY)
mark_as_advanced(PHONON_INCLUDE_DIR PHONON_LIBRARY)
if( TOMAHAWK_QT5 )
find_package(Phonon4Qt5 NO_MODULE)
set(Phonon_FOUND ${Phonon4Qt5_FOUND})
set(Phonon_DIR ${Phonon4Qt5_DIR})
else()
find_package(Phonon NO_MODULE)
endif()
find_package_handle_standard_args(Phonon DEFAULT_MSG Phonon_DIR )

View File

@@ -6,45 +6,24 @@
# QJSON_INCLUDE_DIR - the include path of the qjson library
#
if (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES)
# Already in cache
set (QJSON_FOUND TRUE)
else (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES)
if (NOT WIN32)
# use pkg-config to get the values of QJSON_INCLUDE_DIRS
# and QJSON_LIBRARY_DIRS to add as hints to the find commands.
include (FindPkgConfig)
pkg_check_modules (QJSON REQUIRED QJson>=0.5)
endif (NOT WIN32)
find_library (QJSON_LIBRARIES
find_library (QJSON_LIBRARIES
NAMES
qjson
PATHS
${QJSON_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
${KDE4_LIB_DIR}
)
)
find_path (QJSON_INCLUDE_DIR
find_path (QJSON_INCLUDE_DIR
NAMES
parser.h
PATH_SUFFIXES
qjson
qjson/parser.h
PATHS
${QJSON_INCLUDE_DIRS}
${INCLUDE_INSTALL_DIR}
${KDE4_INCLUDE_DIR}
)
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(QJSON DEFAULT_MSG QJSON_LIBRARIES QJSON_INCLUDE_DIR)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(QJSON DEFAULT_MSG QJSON_LIBRARIES QJSON_INCLUDE_DIR)
if ( UNIX AND NOT APPLE )
set ( QJSON_LIBRARIES "${QJSON_LIBRARIES} ${QJSON_LDFLAGS}" CACHE INTERNAL "")
endif ()
endif (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES)

View File

@@ -7,9 +7,6 @@
# (c) Dominik Schmidt <dev@dominik-schmidt.de>
#
# Dependencies
find_package(Qt4 REQUIRED)
# Include dir
find_path(QTWEETLIB_INCLUDE_DIR
NAMES QTweetLib/qtweetlib_global.h

View File

@@ -1,11 +1,10 @@
find_package(Qt4)
find_path(QuaZip_INCLUDE_DIR quazip.h ${CMAKE_INSTALL_PREFIX}/include/quazip ${CMAKE_INSTALL_PREFIX}/include /usr/include/quazip /usr/local/include/quazip ${QT_INCLUDE_DIR}/quazip ${QT_INCLUDE_DIR} ${QUAZIP_DIR}/include/quazip ${QUAZIP_DIR}/quazip ${QUAZIP_DIR}/include)
find_path(QuaZip_INCLUDE_DIR quazip/quazip.h ${CMAKE_INSTALL_PREFIX}/include/quazip ${CMAKE_INSTALL_PREFIX}/include /usr/include/quazip /usr/local/include/quazip ${QT_INCLUDE_DIR}/quazip ${QT_INCLUDE_DIR} ${QUAZIP_DIR}/include/quazip ${QUAZIP_DIR}/quazip ${QUAZIP_DIR}/include)
find_library(QuaZip_LIBRARY NAMES quazip PATHS ${CMAKE_INSTALL_PREFIX}/lib64 ${CMAKE_INSTALL_PREFIX}/lib ${CMAKE_INSTALL_PREFIX}/Library/Frameworks ${QUAZIP_DIR}/lib64 ${QUAZIP_DIR}/lib ${QUAZIP_DIR}/quazip ${QUAZIP_DIR})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(quazip DEFAULT_MSG QuaZip_LIBRARY QuaZip_INCLUDE_DIR)
set(QuaZip_LIBRARIES ${QuaZip_LIBRARY})
mark_as_advanced(QuaZip_LIBRARY QuaZip_INCLUDE_DIR)
if(QuaZip_LIBRARY AND QuaZip_INCLUDE_DIR)
set(QuaZip_FOUND TRUE)
if(QuaZip_LIBRARY AND QuaZip_INCLUDE_DIR)
set(QuaZip_FOUND TRUE)
endif()

View File

@@ -0,0 +1,27 @@
# Copyright (c) 2013, Teo Mrnjavac <teo@kde.org>
include(FindPackageHandleStandardArgs)
if( NOT BUILD_WITH_QT4 )
find_package(TelepathyQt5 NO_MODULE)
set(TelepathyQt_FOUND ${TelepathyQt5_FOUND})
set(TELEPATHY_QT_VERSION ${TELEPATHY_QT5_VERSION})
set(TELEPATHY_QT_INSTALL_DIR ${TELEPATHY_QT5_INSTALL_DIR})
set(TELEPATHY_QT_INCLUDE_DIR ${TELEPATHY_QT5_INCLUDE_DIR})
set(TELEPATHY_QT_LIB_DIR ${TELEPATHY_QT5_LIB_DIR})
set(TELEPATHY_QT_SHARE_DIR ${TELEPATHY_QT5_SHARE_DIR})
set(TELEPATHY_QT_LIBRARIES ${TELEPATHY_QT5_LIBRARIES})
else()
find_package(TelepathyQt4 NO_MODULE)
set(TelepathyQt_FOUND ${TelepathyQt4_FOUND})
set(TELEPATHY_QT_VERSION ${TELEPATHY_QT4_VERSION})
set(TELEPATHY_QT_INSTALL_DIR ${TELEPATHY_QT4_INSTALL_DIR})
set(TELEPATHY_QT_INCLUDE_DIR ${TELEPATHY_QT4_INCLUDE_DIR})
set(TELEPATHY_QT_LIB_DIR ${TELEPATHY_QT4_LIB_DIR})
set(TELEPATHY_QT_SHARE_DIR ${TELEPATHY_QT4_SHARE_DIR})
set(TELEPATHY_QT_LIBRARIES ${TELEPATHY_QT4_LIBRARIES})
endif()
set(TELEPATHY_QT_FOUND ${TelepathyQt_FOUND})
find_package_handle_standard_args(TelepathyQt DEFAULT_MSG TELEPATHY_QT_INSTALL_DIR )

View File

@@ -274,11 +274,11 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
File "${INSTALL_PATH}\bin\tomahawk.exe"
File "${INSTALL_PATH}\bin\tomahawk_crash_reporter.exe"
File "${INSTALL_PATH}\bin\libtomahawk_breakpad.dll"
File "${INSTALL_PATH}\bin\libqxtweb-standalone.dll"
File "${INSTALL_PATH}\bin\libtomahawk_portfwd.dll"
File "${INSTALL_PATH}\bin\libtomahawklib.dll"
File "${INSTALL_PATH}\bin\libtomahawk.dll"
File "${INSTALL_PATH}\bin\libtomahawk-widgets.dll"
File "${INSTALL_PATH}\bin\libtomahawk-playdarapi.dll"
; plugins
File "${INSTALL_PATH}\lib\libtomahawk_*_*.dll"
!endif
@@ -287,11 +287,11 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
File "${BUILD_PATH}\tomahawk.exe"
File "${BUILD_PATH}\tomahawk_crash_reporter.exe"
File "${BUILD_PATH}\libtomahawk_breakpad.dll"
File "${BUILD_PATH}\libtomahawklib.dll"
File "${BUILD_PATH}\libqxtweb-standalone.dll"
File "${BUILD_PATH}\libtomahawk_portfwd.dll"
File "${BUILD_PATH}\libtomahawk.dll"
File "${BUILD_PATH}\libtomahawk-widgets.dll"
File "${BUILD_PATH}\libtomahawk-playdarapi.dll"
; plugins
File "${BUILD_PATH}\libtomahawk_*_*.dll"
!endif
@@ -354,6 +354,7 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
File "${MING_BIN}\liblastfm.dll"
File "${MING_BIN}\libQTweetLib.dll"
File "${MING_BIN}\libquazip.dll"
File "${MING_BIN}\libqtkeychain.dll"
; Jabber
File "${MING_BIN}\libjreen.dll"
@@ -361,11 +362,11 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
SetOutPath "$INSTDIR\crypto"
File "${MING_LIB}\qt4\plugins\crypto\libqca-ossl.dll"
SetOutPath "$INSTDIR"
File "${MING_BIN}\libssl-8.dll"
File "${MING_BIN}\libcrypto-8.dll"
File "${MING_BIN}\libssl-10.dll"
File "${MING_BIN}\libcrypto-10.dll"
File "${MING_LIB}\libclucene-core.dll"
File "${MING_LIB}\libclucene-shared.dll"
File "${MING_BIN}\libclucene-core.dll"
File "${MING_BIN}\libclucene-shared.dll"
File "${MING_BIN}\libqtsparkle.dll"
File "${MING_BIN}\libattica.dll"

View File

@@ -1,3 +1,60 @@
Version 0.8.0:
* Playback Queue now saves its state across sessions.
* Added "Inbox" feature, showing incoming song recommendations. Dropping
a track on a user in the sidebar sends a recommendation to them.
* You will now be asked whether you want to trust invalid SSL certificates.
* Improved connecting between Tomahawk peers and support having multiple IPs
(including IPv6).
* Added Trending page, showing you the most played tracks of your friends recently,
trending songs and playlists.
* Removed Top Loved from sidebar.
* JavaScript-Resolver can now handle URLs (e.g. when dropped from a browser)
and resolve them to Playlists/Tracks/Artists/Albums.
* HTTP(S) streaming is now done by Tomahawk instead of the Phonon backend
(fixed HTTPS streaming on MacOS).
* Heavily reduced memory footprint during and after indexing the database.
* New Loved widget shows what friends have loved tracks throughout the app.
* New Artist, Album and Track page design - new fonts, colors, layout.
* Retina display and DPI scaling fixes.
* New Dashboard layout.
* New Stats widget.
* New Collection views.
* Added Telepathy support.
* Plugin refactoring (and .AXE resolver binaries).
* Removed Twitter due to change in Twitter's API.
* Improved error messages.
* Support drag & drop of items from Artist and Album page headers.
* Added basic remote control API
* Add support for Opus codec in local files (requires TagLib 1.9)
* Support rtmp:// streams
Version 0.7.0:
* JavaScript Resolvers can now expose collections.
* Introduced bundle system for JavaScript Resolvers, called "axes".
* Fixed playback-loop caused by duplicate tracks in a playlist.
* Improved peer handling and removed connection support through Twitter.
* Taking an account offline now also disconnects associated peers.
* Improved spotify protocol handling.
* Added "Append to Playlist" context menu item.
* User-friendlier collection handling: added info-buttons for artists and
albums. Double-clicking an item expands it now.
* Charts only load on-demand now.
* Fixed Diagnostics information not correctly updating.
* Fixed issue with hidden sidebar and panels.
* Fixed issues with some color schemes.
* Fixed playing files with special characters in the filename.
* Improved stability.
* Added translations for Catalan, Czech, Galician, Greek, Italian and
Chinese.
* (Windows) Smoother and more responsive audio playback.
* (Linux) Fixed grid issues with GTK-styles.
Version 0.6.1:
* Improved stability.
* Improved UPnP detection and port-forwarding.
* Fixed scrolling behaviour of grid-views.
* Lots of small design tweaks and fixes.
Version 0.6.0:
* Improved icon theme with vector graphics.
* Higher resolution artist and album images.
@@ -5,6 +62,8 @@ Version 0.6.0:
biographies.
* New AudioControl logic - only enable Prev/Skip buttons if available.
* Added more options to right-click/context menus.
* Resolver source icon in Audiocontrols now supports being a link-back URL
to original source.
* Make friends' currently playing song (in sidebar) clickable.
* Improve MusicBrainz plugin to use normalized artist names and avoid
duplicate tracks.
@@ -22,8 +81,11 @@ Version 0.6.0:
* Remove YouTube resolver from plug-in directory on request of YouTube.
* Fixed iTunes m3u playlist support.
* Support dropping of new Soundcloud user, track, set & likes URLs.
* Add HotNewHipHop as available chart.
* Add iTunes as available source for New Releases.
* Added HotNewHipHop as available chart.
* Added iTunes as available source for New Releases.
* Updates and additions to translations including: Japanese, Bulgarian,
Finnish, Russian, Arabic, Chinese, Swedish, Czech and more.
* (Windows) Added thumb buttons to Windows 7's taskbar.
* (Linux) Allow disabling of playback notifications.
Version 0.5.5:
@@ -430,4 +492,4 @@ Version 0.0.2:
* Tomahawk now asks you to authorize new contacts.
Version 0.0.1:
* First public release.
* First public release.

View File

@@ -13,6 +13,7 @@ Compile:
Start the application on Linux:
$ ./tomahawk
Start the application on OS X:
$ open tomahawk.app
@@ -20,11 +21,11 @@ Start the application on OS X:
Detailed building instructions for Ubuntu
-----------------------------------------
See: http://wiki.tomahawk-player.org/index.php/Building_Ubuntu_Binary_on_Precise_(12.04)
See: http://wiki.tomahawk-player.org/index.php/Building_Binary_on_Ubuntu_Precise_(12.04)
Detailed building instructions for OS X
---------------------------------------
See: http://wiki.tomahawk-player.org/index.php/Building_OS_X_Application_Bundle_on_Snow_Leopard_(10.6)_and_Lion_(10.7)
See: http://wiki.tomahawk-player.org/index.php/Building_OS_X_Application_Bundle
Doxygen Documentation
---------------------
@@ -36,31 +37,32 @@ Dependencies
Required dependencies:
* CMake 2.8.6 - http://www.cmake.org/
* Qt 4.7.0 - http://qt.nokia.com/
* Qt 4.7.0 - http://qt-project.org/
* Phonon 4.6.0 - http://phonon.kde.org/
* QJson 0.7.1 - http://qjson.sourceforge.net/
* QJson 0.8.1 - http://qjson.sourceforge.net/
* SQLite 3.6.22 - http://www.sqlite.org/
* TagLib 1.6.2 - http://developer.kde.org/~wheeler/taglib.html
* Boost 1.3 - http://www.boost.org/
* CLucene 0.9.23 (0.9.21 will fail) - http://clucene.sourceforge.net/download.shtml
* libechonest 2.0.0 - http://projects.kde.org/projects/playground/libs/libechonest/
* libechonest 2.2.0 - http://projects.kde.org/projects/playground/libs/libechonest/
* Attica 0.4.0 - ftp://ftp.kde.org/pub/kde/stable/attica/
* QuaZip 0.4.3 - http://quazip.sourceforge.net/
* liblastfm 1.0.1 - http://github.com/lastfm/liblastfm/
* liblastfm 1.0.1 - https://github.com/lastfm/liblastfm/
* QtKeychain 0.1 - https://github.com/frankosterfeld/qtkeychain/
The following dependencies are optional, but recommended:
* Jreen 1.0.5 (1.1.0 will fail, 1.1.1 is fine) - http://qutim.org/jreen / https://github.com/euroelessar/jreen
* QTweetLib 0.5.0 - https://github.com/minimoog/QTweetLib
* Jreen 1.0.5 (1.1.0 will fail, 1.1.1 is fine) - http://qutim.org/jreen/
* QTweetLib 0.5.0 - https://github.com/minimoog/QTweetLib/
Third party libraries that we ship with our source:
* MiniUPnP 1.6 - http://miniupnp.free.fr/
* Breakpad - http://code.google.com/p/google-breakpad/
* Qocoa - http://github.com/mikemcquaid/Qocoa
* Qocoa - https://github.com/mikemcquaid/Qocoa/
* libqnetwm - http://code.google.com/p/libqnetwm/
* libqxt (QxtWeb module) - http://libqxt.org
* SPMediaKeyTap - https://github.com/nevyn/SPMediaKeyTap
* kdsingleapplicationguard
* libqxt (QxtWeb module) - http://libqxt.org/
* SPMediaKeyTap - https://github.com/nevyn/SPMediaKeyTap/
* kdSingleApplicationGuard - http://www.kdab.com/
Enjoy!

112
TomahawkAddLibrary.cmake Normal file
View File

@@ -0,0 +1,112 @@
include( CMakeParseArguments )
function(tomahawk_add_library)
# parse arguments (name needs to be saved before passing ARGN into the macro)
set(NAME ${ARGV0})
set(options NO_INSTALL NO_VERSION)
set(oneValueArgs NAME TYPE EXPORT_MACRO TARGET TARGET_TYPE EXPORT VERSION SOVERSION INSTALL_BINDIR)
set(multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS QT5_MODULES)
cmake_parse_arguments(LIBRARY "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(LIBRARY_NAME ${NAME})
# message("*** Arguments for ${LIBRARY_NAME}")
# message("Sources: ${LIBRARY_SOURCES}")
# message("Link libraries: ${LIBRARY_LINK_LIBRARIES}")
# message("UI: ${LIBRARY_UI}")
# message("TARGET_TYPE: ${LIBRARY_TARGET_TYPE}")
# message("EXPORT_MACRO: ${LIBRARY_EXPORT_MACRO}")
# message("NO_INSTALL: ${LIBRARY_NO_INSTALL}")
set(target ${LIBRARY_NAME})
# qt stuff
include_directories(${CMAKE_CURRENT_LIST_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
if(LIBRARY_UI)
qt_wrap_ui(LIBRARY_UI_SOURCES ${LIBRARY_UI})
list(APPEND LIBRARY_SOURCES ${LIBRARY_UI_SOURCES})
endif()
# add resources from current dir
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/resources.qrc")
qt_add_resources(LIBRARY_RC_SOURCES "resources.qrc")
list(APPEND LIBRARY_SOURCES ${LIBRARY_RC_SOURCES})
unset(LIBRARY_RC_SOURCES)
endif()
# add target
if(LIBRARY_TARGET_TYPE STREQUAL "STATIC")
add_library(${target} STATIC ${LIBRARY_SOURCES})
elseif(LIBRARY_TARGET_TYPE STREQUAL "MODULE")
add_library(${target} MODULE ${LIBRARY_SOURCES})
else() # default
add_library(${target} SHARED ${LIBRARY_SOURCES})
endif()
# HACK: add qt modules - every lib should define its own set of modules
qt5_use_modules(${target} Core Network Widgets Sql Xml DBus ${LIBRARY_QT5_MODULES})
# definitions - can this be moved into set_target_properties below?
add_definitions(${QT_DEFINITIONS})
set_target_properties(${target} PROPERTIES AUTOMOC TRUE)
if(LIBRARY_EXPORT_MACRO)
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${LIBRARY_EXPORT_MACRO})
endif()
if(LIBRARY_COMPILE_DEFINITIONS)
# Dear CMake, i hate you! Sincerely, domme
# At least in CMake 2.8.8, you CANNOT set more than one COMPILE_DEFINITIONS value
# only takes the first one if called multiple times or bails out with wrong number of arguments
# when passing in a list, thus i redefine the export macro here in hope it won't mess up other targets
add_definitions( "-D${LIBRARY_EXPORT_MACRO}" )
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${LIBRARY_COMPILE_DEFINITIONS})
endif()
# add link targets
target_link_libraries(${target} ${TOMAHAWK_LIBRARIES})
if(LIBRARY_LINK_LIBRARIES)
target_link_libraries(${target} ${LIBRARY_LINK_LIBRARIES})
endif()
if(LIBRARY_LINK_PRIVATE_LIBRARIES)
target_link_libraries(${target} LINK_PRIVATE ${LIBRARY_LINK_PRIVATE_LIBRARIES})
endif()
# add soversion
if(NOT LIBRARY_NO_VERSION)
set_target_properties(${target} PROPERTIES VERSION ${LIBRARY_VERSION})
if(NOT LIBRARY_SOVERSION)
set(LIBRARY_SOVERSION ${LIBRARY_VERSION})
endif()
set_target_properties(${target} PROPERTIES SOVERSION ${LIBRARY_SOVERSION})
endif()
if(NOT LIBRARY_INSTALL_BINDIR)
set(LIBRARY_INSTALL_BINDIR "${CMAKE_INSTALL_BINDIR}")
endif()
# make installation optional, maybe useful for dummy plugins one day
if(NOT LIBRARY_NO_INSTALL)
include(GNUInstallDirs)
if(NOT LIBRARY_EXPORT)
install( TARGETS ${target}
RUNTIME DESTINATION ${LIBRARY_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
else()
install( TARGETS ${target}
EXPORT ${LIBRARY_EXPORT}
RUNTIME DESTINATION ${LIBRARY_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
endif()
endif()
endfunction()

55
TomahawkAddPlugin.cmake Normal file
View File

@@ -0,0 +1,55 @@
include( CMakeParseArguments )
include( ${TOMAHAWK_CMAKE_DIR}/TomahawkAddLibrary.cmake )
function(tomahawk_add_plugin)
# parse arguments (name needs to be saved before passing ARGN into the macro)
set(NAME ${ARGV0})
set(options NO_INSTALL SHARED_LIB)
set(oneValueArgs NAME TYPE EXPORT_MACRO)
set(multiValueArgs SOURCES UI LINK_LIBRARIES COMPILE_DEFINITIONS)
cmake_parse_arguments(PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(PLUGIN_NAME ${NAME})
# message("*** Arguments for ${PLUGIN_NAME}")
# message("Sources: ${PLUGIN_SOURCES}")
# message("Link libraries: ${PLUGIN_LINK_LIBRARIES}")
# message("UI: ${PLUGIN_UI}")
# message("TYPE: ${PLUGIN_TYPE}")
# message("EXPORT_MACRO: ${PLUGIN_EXPORT_MACRO}")
# message("NO_INSTALL: ${PLUGIN_NO_INSTALL}")
# create target name once for convenience
set(target "tomahawk_${PLUGIN_TYPE}_${PLUGIN_NAME}")
# determine target type
if(NOT ${PLUGIN_SHARED_LIB})
set(target_type "MODULE")
else()
set(target_type "SHARED")
endif()
list(APPEND tomahawk_add_library_args
"${target}"
"EXPORT_MACRO" "${PLUGIN_EXPORT_MACRO}"
"TARGET_TYPE" "${target_type}"
"SOURCES" "${PLUGIN_SOURCES}"
)
if(PLUGIN_UI)
list(APPEND tomahawk_add_library_args "UI" "${PLUGIN_UI}")
endif()
if(PLUGIN_LINK_LIBRARIES)
list(APPEND tomahawk_add_library_args "LINK_LIBRARIES" "${PLUGIN_LINK_LIBRARIES}")
endif()
if(PLUGIN_COMPILE_DEFINITIONS)
list(APPEND tomahawk_add_library_args "COMPILE_DEFINITIONS" ${PLUGIN_COMPILE_DEFINITIONS})
endif()
list(APPEND tomahawk_add_library_args "NO_VERSION")
list(APPEND tomahawk_add_library_args "INSTALL_BINDIR" "${CMAKE_INSTALL_LIBDIR}")
tomahawk_add_library(${tomahawk_add_library_args})
endfunction()

View File

@@ -0,0 +1,4 @@
set(TOMAHAWK_INCLUDE_DIRS
"@PROJECT_SOURCE_DIR@/src/libtomahawk"
"@PROJECT_BINARY_DIR@/src/libtomahawk"
)

21
TomahawkConfig.cmake.in Normal file
View File

@@ -0,0 +1,21 @@
# - Config file for the Tomahawk package
# It defines the following variables
# TOMAHAWK_INCLUDE_DIRS - include directories for Tomahawk
# TOMAHAWK_LIBRARIES - libraries to link against
# TOMAHAWK_EXECUTABLE - the bar executable
# Compute paths
get_filename_component(TOMAHAWK_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
if(EXISTS "${TOMAHAWK_CMAKE_DIR}/CMakeCache.txt")
# In build tree
include("${TOMAHAWK_CMAKE_DIR}/TomahawkBuildTreeSettings.cmake")
else()
set(TOMAHAWK_INCLUDE_DIRS "${TOMAHAWK_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@/libtomahawk")
endif()
# Our library dependencies (contains definitions for IMPORTED targets)
include("${TOMAHAWK_CMAKE_DIR}/TomahawkLibraryDepends.cmake")
# These are IMPORTED targets created by TomahawkLibraryDepends.cmake
set(TOMAHAWK_LIBRARIES tomahawklib)
set(TOMAHAWK_USE_FILE "${TOMAHAWK_CMAKE_DIR}/TomahawkUse.cmake")

View File

@@ -0,0 +1,12 @@
set(PACKAGE_VERSION "@TOMAHAWK_VERSION@")
# Check whether the requested PACKAGE_FIND_VERSION is compatible
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()

63
TomahawkUse.cmake.in Normal file
View File

@@ -0,0 +1,63 @@
#FIXME: this duplicates top level cmakelists: how can we reduce code duplication?
set( TOMAHAWK_QT5 @TOMAHAWK_QT5@ )
if(TOMAHAWK_QT5)
find_package(Qt5Core)
find_package(Qt5Network)
find_package(Qt5Gui)
find_package(Qt5Sql)
set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork")
if(BUILD_GUI OR NOT DEFINED BUILD_GUI)
find_package(Qt5Widgets)
find_package(Qt5Svg)
endif()
macro(qt_wrap_ui)
qt5_wrap_ui(${ARGN})
endmacro()
macro(qt_add_resources)
qt5_add_resources(${ARGN})
endmacro()
find_package(Qt5LinguistTools REQUIRED)
macro(qt_add_translation)
qt5_add_translation(${ARGN})
endmacro()
else(TOMAHAWK_QT5)
find_package(Qt4 COMPONENTS QtNetwork QtCore QtGui QtSql REQUIRED)
include( ${QT_USE_FILE} )
set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork")
if(BUILD_GUI OR NOT DEFINED BUILD_GUI)
list(APPEND NEEDED_QT4_COMPONENTS "QtGui" "QtWebkit" "QtUiTools" "QtSvg")
endif()
find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS})
include( ${QT_USE_FILE} )
macro(qt5_use_modules)
endmacro()
macro(qt_wrap_ui)
qt4_wrap_ui(${ARGN})
endmacro()
macro(qt_add_resources)
qt4_add_resources(${ARGN})
endmacro()
macro(qt_add_translation)
qt4_add_translation(${ARGN})
endmacro()
endif(TOMAHAWK_QT5)
if(NOT TOMAHAWK_CMAKE_DIR)
set(TOMAHAWK_CMAKE_DIR ${CMAKE_CURRENT_LIST_DIR})
endif()
include( "${TOMAHAWK_CMAKE_DIR}/TomahawkAddLibrary.cmake" )
include( "${TOMAHAWK_CMAKE_DIR}/TomahawkAddPlugin.cmake" )

View File

@@ -26,6 +26,8 @@
<string>10.5.0</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<true />
<key>SUFeedURL</key>
<string>http://download.tomahawk-player.org/sparkle/update.php</string>
<key>SUPublicDSAKeyFile</key>

View File

@@ -1,5 +1,5 @@
#!/usr/bin/python
# This file is part of Tomahawk.
# This file is part of Tomahawk.
# It was inspired in large part by the macdeploy script in Clementine.
#
# Clementine is free software: you can redistribute it and/or modify
@@ -26,162 +26,162 @@ FRAMEWORK_SEARCH_PATH=[
os.path.join(os.environ['HOME'], 'Library/Frameworks')
]
LIBRARY_SEARCH_PATH=['/usr/local/lib', '/usr/local/Cellar/gettext/0.18.1.1/lib', '.']
LIBRARY_SEARCH_PATH=['/usr/local/lib', '/usr/local/Cellar/gettext/0.18.3.2/lib', '.']
VLC_PLUGINS=[
'libaccess_attachment_plugin.dylib',
#'libaccess_avio_plugin.dylib',
#'libaccess_fake_plugin.dylib',
'libaccess_ftp_plugin.dylib',
'libaccess_http_plugin.dylib',
'libaccess_imem_plugin.dylib',
#'libaccess_mmap_plugin.dylib',
'libaccess_mms_plugin.dylib',
'libaccess_realrtsp_plugin.dylib',
'libaccess_tcp_plugin.dylib',
'libaccess_udp_plugin.dylib',
'libcdda_plugin.dylib',
'libfilesystem_plugin.dylib',
'libqtcapture_plugin.dylib',
'librtp_plugin.dylib',
'libzip_plugin.dylib',
'libaccess_output_dummy_plugin.dylib',
'libaccess_output_file_plugin.dylib',
'libaccess_output_http_plugin.dylib',
'libaccess_output_shout_plugin.dylib',
'libaccess_output_udp_plugin.dylib',
'liba52tofloat32_plugin.dylib',
'liba52tospdif_plugin.dylib',
'libaudio_format_plugin.dylib',
'libaudiobargraph_a_plugin.dylib',
'libchorus_flanger_plugin.dylib',
'libconverter_fixed_plugin.dylib',
'libdolby_surround_decoder_plugin.dylib',
'libdtstofloat32_plugin.dylib',
'libdtstospdif_plugin.dylib',
'libequalizer_plugin.dylib',
'libheadphone_channel_mixer_plugin.dylib',
'libmono_plugin.dylib',
'libmpgatofixed32_plugin.dylib',
'libnormvol_plugin.dylib',
'libparam_eq_plugin.dylib',
'libscaletempo_plugin.dylib',
'libsimple_channel_mixer_plugin.dylib',
'libspatializer_plugin.dylib',
'libtrivial_channel_mixer_plugin.dylib',
'libugly_resampler_plugin.dylib',
'libfloat32_mixer_plugin.dylib',
'access/libaccess_attachment_plugin.dylib',
#'access/libaccess_avio_plugin.dylib',
#'access/libaccess_fake_plugin.dylib',
'access/libaccess_ftp_plugin.dylib',
'access/libaccess_http_plugin.dylib',
'access/libaccess_imem_plugin.dylib',
#'access/libaccess_mmap_plugin.dylib',
'access/libaccess_mms_plugin.dylib',
'access/libaccess_realrtsp_plugin.dylib',
'access/libaccess_tcp_plugin.dylib',
'access/libaccess_udp_plugin.dylib',
'access/libcdda_plugin.dylib',
'access/libfilesystem_plugin.dylib',
'access/libqtcapture_plugin.dylib',
'access/librtp_plugin.dylib',
'access/libzip_plugin.dylib',
'access_output/libaccess_output_dummy_plugin.dylib',
'access_output/libaccess_output_file_plugin.dylib',
'access_output/libaccess_output_http_plugin.dylib',
'access_output/libaccess_output_shout_plugin.dylib',
'access_output/libaccess_output_udp_plugin.dylib',
'audio_filter/liba52tofloat32_plugin.dylib',
'audio_filter/liba52tospdif_plugin.dylib',
'audio_filter/libaudio_format_plugin.dylib',
'audio_filter/libaudiobargraph_a_plugin.dylib',
'audio_filter/libchorus_flanger_plugin.dylib',
#'libconverter_fixed_plugin.dylib',
'audio_filter/libdolby_surround_decoder_plugin.dylib',
'audio_filter/libdtstofloat32_plugin.dylib',
'audio_filter/libdtstospdif_plugin.dylib',
'audio_filter/libequalizer_plugin.dylib',
'audio_filter/libheadphone_channel_mixer_plugin.dylib',
'audio_filter/libmono_plugin.dylib',
'audio_filter/libmpgatofixed32_plugin.dylib',
'audio_filter/libnormvol_plugin.dylib',
'audio_filter/libparam_eq_plugin.dylib',
'audio_filter/libscaletempo_plugin.dylib',
'audio_filter/libsimple_channel_mixer_plugin.dylib',
'audio_filter/libspatializer_plugin.dylib',
'audio_filter/libtrivial_channel_mixer_plugin.dylib',
'audio_filter/libugly_resampler_plugin.dylib',
'audio_mixer/libfloat_mixer_plugin.dylib',
#'libspdif_mixer_plugin.dylib',
#'libtrivial_mixer_plugin.dylib',
'libaout_file_plugin.dylib',
'libauhal_plugin.dylib',
'liba52_plugin.dylib',
'libadpcm_plugin.dylib',
'libaes3_plugin.dylib',
'libaraw_plugin.dylib',
'libavcodec_plugin.dylib',
'libcc_plugin.dylib',
'libcdg_plugin.dylib',
'libdts_plugin.dylib',
'libfaad_plugin.dylib',
#'libaout_file_plugin.dylib',
'audio_output/libauhal_plugin.dylib',
'codec/liba52_plugin.dylib',
'codec/libadpcm_plugin.dylib',
'codec/libaes3_plugin.dylib',
'codec/libaraw_plugin.dylib',
'codec/libavcodec_plugin.dylib',
'codec/libcc_plugin.dylib',
'codec/libcdg_plugin.dylib',
'codec/libdts_plugin.dylib',
'codec/libfaad_plugin.dylib',
#'libfake_plugin.dylib',
'libflac_plugin.dylib',
'libfluidsynth_plugin.dylib',
'codec/libflac_plugin.dylib',
#'libfluidsynth_plugin.dylib',
#'libinvmem_plugin.dylib',
'liblpcm_plugin.dylib',
'libmpeg_audio_plugin.dylib',
'libpng_plugin.dylib',
'librawvideo_plugin.dylib',
'libspeex_plugin.dylib',
'libspudec_plugin.dylib',
'libtheora_plugin.dylib',
'libtwolame_plugin.dylib',
'libvorbis_plugin.dylib',
'libgestures_plugin.dylib',
'libhotkeys_plugin.dylib',
'libmotion_plugin.dylib',
'libnetsync_plugin.dylib',
'codec/liblpcm_plugin.dylib',
'codec/libmpeg_audio_plugin.dylib',
'codec/libpng_plugin.dylib',
'codec/librawvideo_plugin.dylib',
'codec/libspeex_plugin.dylib',
'codec/libspudec_plugin.dylib',
'codec/libtheora_plugin.dylib',
'codec/libtwolame_plugin.dylib',
'codec/libvorbis_plugin.dylib',
#'control/libgestures_plugin.dylib',
#'libhotkeys_plugin.dylib',
#'libmotion_plugin.dylib',
#'libnetsync_plugin.dylib',
#'libsignals_plugin.dylib',
'libaiff_plugin.dylib',
'libasf_plugin.dylib',
'libau_plugin.dylib',
'demux/libaiff_plugin.dylib',
'demux/libasf_plugin.dylib',
'demux/libau_plugin.dylib',
#'libavformat_plugin.dylib',
'libavi_plugin.dylib',
'libdemux_cdg_plugin.dylib',
'libdemuxdump_plugin.dylib',
'libdirac_plugin.dylib',
'libes_plugin.dylib',
'libflacsys_plugin.dylib',
'liblive555_plugin.dylib',
'libmkv_plugin.dylib',
'libmod_plugin.dylib',
'libmp4_plugin.dylib',
'libmpc_plugin.dylib',
'libmpgv_plugin.dylib',
'libnsc_plugin.dylib',
'libnsv_plugin.dylib',
'libnuv_plugin.dylib',
'libogg_plugin.dylib',
'libplaylist_plugin.dylib',
'libps_plugin.dylib',
'libpva_plugin.dylib',
'librawaud_plugin.dylib',
'librawdv_plugin.dylib',
'librawvid_plugin.dylib',
'libreal_plugin.dylib',
'libsmf_plugin.dylib',
'libts_plugin.dylib',
'libtta_plugin.dylib',
'libty_plugin.dylib',
'libvc1_plugin.dylib',
'libvoc_plugin.dylib',
'libwav_plugin.dylib',
'libxa_plugin.dylib',
'libfolder_plugin.dylib',
'libtaglib_plugin.dylib',
'libaudioscrobbler_plugin.dylib',
'libdummy_plugin.dylib',
'libexport_plugin.dylib',
'libfreetype_plugin.dylib',
'libgnutls_plugin.dylib',
'liblogger_plugin.dylib',
'liblua_plugin.dylib',
'libosd_parser_plugin.dylib',
'libquartztext_plugin.dylib',
'libstats_plugin.dylib',
'libvod_rtsp_plugin.dylib',
'libxml_plugin.dylib',
'demux/libavi_plugin.dylib',
'demux/libdemux_cdg_plugin.dylib',
'demux/libdemuxdump_plugin.dylib',
'demux/libdirac_plugin.dylib',
'demux/libes_plugin.dylib',
'demux/libflacsys_plugin.dylib',
'access/liblive555_plugin.dylib',
'demux/libmkv_plugin.dylib',
'demux/libmod_plugin.dylib',
'demux/libmp4_plugin.dylib',
'demux/libmpc_plugin.dylib',
'demux/libmpgv_plugin.dylib',
'demux/libnsc_plugin.dylib',
'demux/libnsv_plugin.dylib',
'demux/libnuv_plugin.dylib',
'demux/libogg_plugin.dylib',
'demux/libplaylist_plugin.dylib',
'demux/libps_plugin.dylib',
'demux/libpva_plugin.dylib',
'demux/librawaud_plugin.dylib',
'demux/librawdv_plugin.dylib',
'demux/librawvid_plugin.dylib',
'demux/libreal_plugin.dylib',
'demux/libsmf_plugin.dylib',
'demux/libts_plugin.dylib',
'demux/libtta_plugin.dylib',
'demux/libty_plugin.dylib',
'demux/libvc1_plugin.dylib',
'demux/libvoc_plugin.dylib',
'demux/libwav_plugin.dylib',
'demux/libxa_plugin.dylib',
'meta_engine/libfolder_plugin.dylib',
'meta_engine/libtaglib_plugin.dylib',
#'libaudioscrobbler_plugin.dylib',
'control/libdummy_plugin.dylib',
'misc/libexport_plugin.dylib',
#'libfreetype_plugin.dylib',
#'libgnutls_plugin.dylib',
#'liblogger_plugin.dylib',
'lua/liblua_plugin.dylib',
#'libosd_parser_plugin.dylib',
#'libquartztext_plugin.dylib',
#'libstats_plugin.dylib',
'misc/libvod_rtsp_plugin.dylib',
'misc/libxml_plugin.dylib',
#'libxtag_plugin.dylib',
'libi420_rgb_mmx_plugin.dylib',
'libi420_yuy2_mmx_plugin.dylib',
'libi422_yuy2_mmx_plugin.dylib',
'libmemcpymmx_plugin.dylib',
'libmemcpymmxext_plugin.dylib',
'libmux_asf_plugin.dylib',
'libmux_avi_plugin.dylib',
'libmux_dummy_plugin.dylib',
'libmux_mp4_plugin.dylib',
'libmux_mpjpeg_plugin.dylib',
'libmux_ogg_plugin.dylib',
'libmux_ps_plugin.dylib',
'libmux_ts_plugin.dylib',
'libmux_wav_plugin.dylib',
'libpacketizer_copy_plugin.dylib',
'libpacketizer_dirac_plugin.dylib',
'libpacketizer_flac_plugin.dylib',
'libpacketizer_h264_plugin.dylib',
'libpacketizer_mlp_plugin.dylib',
'libpacketizer_mpeg4audio_plugin.dylib',
'libpacketizer_mpeg4video_plugin.dylib',
'libpacketizer_mpegvideo_plugin.dylib',
'libpacketizer_vc1_plugin.dylib',
'libi420_rgb_sse2_plugin.dylib',
'libi420_yuy2_sse2_plugin.dylib',
'libi422_yuy2_sse2_plugin.dylib',
'libdecomp_plugin.dylib',
'libstream_filter_rar_plugin.dylib',
'libstream_filter_record_plugin.dylib',
'libvisual_plugin.dylib',
'mmx/libi420_rgb_mmx_plugin.dylib',
'mmx/libi420_yuy2_mmx_plugin.dylib',
'mmx/libi422_yuy2_mmx_plugin.dylib',
#'libmemcpymmx_plugin.dylib',
#'libmemcpymmxext_plugin.dylib',
'mux/libmux_asf_plugin.dylib',
'mux/libmux_avi_plugin.dylib',
'mux/libmux_dummy_plugin.dylib',
'mux/libmux_mp4_plugin.dylib',
'mux/libmux_mpjpeg_plugin.dylib',
'mux/libmux_ogg_plugin.dylib',
'mux/libmux_ps_plugin.dylib',
'mux/libmux_ts_plugin.dylib',
'mux/libmux_wav_plugin.dylib',
'packetizer/libpacketizer_copy_plugin.dylib',
'packetizer/libpacketizer_dirac_plugin.dylib',
'packetizer/libpacketizer_flac_plugin.dylib',
'packetizer/libpacketizer_h264_plugin.dylib',
'packetizer/libpacketizer_mlp_plugin.dylib',
'packetizer/libpacketizer_mpeg4audio_plugin.dylib',
'packetizer/libpacketizer_mpeg4video_plugin.dylib',
'packetizer/libpacketizer_mpegvideo_plugin.dylib',
'packetizer/libpacketizer_vc1_plugin.dylib',
'sse2/libi420_rgb_sse2_plugin.dylib',
'sse2/libi420_yuy2_sse2_plugin.dylib',
'sse2/libi422_yuy2_sse2_plugin.dylib',
'stream_filter/libdecomp_plugin.dylib',
'access/libstream_filter_rar_plugin.dylib',
'stream_filter/librecord_plugin.dylib',
#'libvisual_plugin.dylib',
]
VLC_SEARCH_PATH=[
@@ -200,9 +200,9 @@ QT_PLUGINS = [
]
TOMAHAWK_PLUGINS = [
'libtomahawk_account_xmpp.so',
'libtomahawk_account_xmpp.dylib',
'libtomahawk_account_google.so',
'libtomahawk_account_twitter.so',
#'libtomahawk_account_twitter.so',
'libtomahawk_account_zeroconf.so',
'libtomahawk_infoplugin_adium.so',
'libtomahawk_infoplugin_charts.so',
@@ -214,10 +214,12 @@ TOMAHAWK_PLUGINS = [
'libtomahawk_infoplugin_newreleases.so',
'libtomahawk_infoplugin_rovi.so',
'libtomahawk_infoplugin_spotify.so',
'libtomahawk_viewpage_dashboard.so',
'libtomahawk_viewpage_networkactivity.so',
]
QT_PLUGINS_SEARCH_PATH=[
'/usr/local/Cellar/qt/4.8.4/plugins',
'/usr/local/Cellar/qt/4.8.5/plugins',
]

View File

@@ -5,11 +5,17 @@ Name=Tomahawk
GenericName=Music Player
GenericName[de]=Musik Player
GenericName[fi]=Musiikkisoitin
GenericName[pl]=Odtwarzacz Muzyki
GenericName[ro]=Redare muzică
GenericName[se]=Musikspelare
TryExec=tomahawk
Exec=tomahawk %u
Comment=Tomahawk - Social Music Player
Comment=Tomahawk Social Music Player
Comment[fi]=Tomahawk sosiaalinen musiikkisoitin
Comment[pl]=Tomahawk Społecznościowy Odtwarzacz Muzyki
Comment[ro]=Tomahawk Redare muzică în mod social
Comment[se]=Tomahawk — Den Sociala Musikspelaren
Icon=tomahawk
Terminal=false
Categories=Qt;AudioVideo;Audio;Player;
MimeType=x-scheme-handler/tomahawk;
MimeType=x-scheme-handler/tomahawk;x-scheme-handler/spotify;

View File

@@ -5,11 +5,9 @@ SET(CMAKE_SYSTEM_NAME Windows)
# specify the cross compiler
SET(CMAKE_C_COMPILER ccache ${MINGW_PREFIX}-gcc)
SET(CMAKE_C_FLAGS "-fno-keep-inline-dllexport")
SET(CMAKE_CXX_COMPILER ccache ${MINGW_PREFIX}-g++)
SET(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
SET(CMAKE_RC_COMPILER /usr/bin/${MINGW_PREFIX}-windres)
SET(CMAKE_C_COMPILER ${MINGW_PREFIX}-gcc)
SET(CMAKE_CXX_COMPILER ${MINGW_PREFIX}-g++)
SET(CMAKE_RC_COMPILER ${MINGW_PREFIX}-windres)
# where is the target environment containing libraries
SET(CMAKE_FIND_ROOT_PATH /usr/${MINGW_PREFIX}/sys-root/mingw)
@@ -18,6 +16,22 @@ SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# configure qt variables
SET(QT_LIBRARY_DIR /usr/${MINGW_PREFIX}/bin)
SET(QT_PLUGINS_DIR ${CMAKE_FIND_ROOT_PATH}/lib/qt4/plugins/)
## configure qt variables
# generic
SET(QMAKESPEC win32-g++-cross)
# dirs
SET(QT_LIBRARY_DIR /usr/${MINGW_PREFIX}/bin)
SET(QT_PLUGINS_DIR ${CMAKE_FIND_ROOT_PATH}/lib/qt4/plugins)
SET(QT_MKSPECS_DIR ${CMAKE_FIND_ROOT_PATH}/share/qt4/mkspecs)
SET(QT_QT_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/include)
# qt tools
SET(QT_QMAKE_EXECUTABLE ${MINGW_PREFIX}-qmake )
SET(QT_MOC_EXECUTABLE ${MINGW_PREFIX}-moc)
SET(QT_RCC_EXECUTABLE ${MINGW_PREFIX}-rcc)
SET(QT_UIC_EXECUTABLE ${MINGW_PREFIX}-uic)
SET(QT_LRELEASE_EXECUTABLE ${MINGW_PREFIX}-lrelease)
# phonon -_-
SET(Automoc4_DIR "/usr/lib64/automoc4/")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 151 KiB

View File

@@ -75,7 +75,9 @@ rm -rvf \
stream_filter/ \
**/libtheora_plugin* \
**/liblibbluray_plugin* \
**/libdtv_plugin*
**/libdtv_plugin* \
**/*.dll.a \
**/*.la
echo "Downloaded and stripped VLC"

92
data/fonts/OFL.txt Normal file
View File

@@ -0,0 +1,92 @@
Copyright (c) 2009-2011 by Accademia di Belle Arti di Urbino and students of MA course of Visual design. Some rights reserved.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 888 B

After

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -1,101 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="606.248px" height="595.5px" viewBox="0 0 606.248 595.5" enable-background="new 0 0 606.248 595.5" xml:space="preserve">
<g id="Layer_3">
<rect x="-20.376" y="-15.75" stroke="#E63E30" stroke-miterlimit="10" width="688" height="700"/>
</g>
<g id="Layer_2">
<path id="path9_1_" inkscape:connector-curvature="0" fill="none" stroke="#E63E30" stroke-miterlimit="10" d="M429.977,493.576
V154.483h-65.371h-6.949v115.065L194.409,156.07c-2.608-1.802-6.036-2.046-8.93-0.661c-2.895,1.493-4.692,4.437-4.692,7.56v266.003
c0,3.123,1.798,6.037,4.692,7.488c1.234,0.695,2.608,0.977,3.953,0.977c1.725,0,3.522-0.561,4.977-1.529l163.248-113.472v201.091
c-17.532,4.084-35.744,6.375-54.511,6.375c-130.896,0-237.345-104.598-237.345-233.146c0-128.547,106.442-233.117,237.345-233.117
c130.858,0,237.344,104.562,237.344,233.116C540.482,379.515,496.305,452.197,429.977,493.576L429.977,493.576z"/>
<ellipse fill="#FFFFFF" stroke="#E63E30" stroke-miterlimit="10" cx="318.624" cy="295.75" rx="286" ry="270.5"/>
</g>
<g id="Layer_1" sodipodi:docname="tomahawk-icon.svg" inkscape:version="0.48.2 r9819" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
<sodipodi:namedview fit-margin-bottom="0" fit-margin-right="0" inkscape:snap-page="false" inkscape:current-layer="Layer_1" inkscape:window-maximized="0" inkscape:window-y="0" inkscape:window-x="0" inkscape:window-height="794" inkscape:window-width="1440" inkscape:pageshadow="2" inkscape:pageopacity="0" fit-margin-left="0" fit-margin-top="0" inkscape:cy="336.94553" inkscape:cx="431.12548" inkscape:zoom="1" showgrid="false" guidetolerance="10" gridtolerance="10" objecttolerance="10" bordercolor="#666666" pagecolor="#ffffff" borderopacity="1" id="namedview11">
<sodipodi:guide orientation="0,841.89001" position="-3.5728101e-05,-1.501866e-05" id="guide2994"></sodipodi:guide>
<sodipodi:guide orientation="-595.28003,0" position="841.88997,-1.501866e-05" id="guide2996"></sodipodi:guide>
<sodipodi:guide orientation="0,-841.89001" position="841.88997,595.28001" id="guide2998"></sodipodi:guide>
<sodipodi:guide orientation="595.28003,0" position="-3.5728101e-05,595.28001" id="guide3000"></sodipodi:guide>
</sodipodi:namedview>
<g id="g3_1_" transform="matrix(7.3080643,0,0,7.1790074,-2773.1692,-1839.0104)">
<g>
<g enable-background="new ">
<g>
<polygon fill="#4C1410" points="430.355,293.516 429.444,293.909 429.416,279.061 430.323,277.603 "/>
</g>
<g>
<polygon fill="#4C1410" points="430.428,328.913 429.507,326.921 429.457,300.757 430.371,300.856 "/>
</g>
<g enable-background="new ">
<defs>
<path id="SVGID_1_" enable-background="new " d="M440.229,324.595l-1.574-1.692c2.083-1.367,3.987-2.983,5.669-4.803
c1.678-1.816,3.136-3.836,4.332-6.018c1.194-2.177,2.127-4.516,2.758-6.973c0.63-2.454,0.959-5.028,0.945-7.679
c-0.022-4.114-0.867-8.035-2.377-11.605c-1.51-3.571-3.686-6.797-6.372-9.519c-2.69-2.726-5.895-4.949-9.458-6.505
c-3.573-1.561-7.51-2.454-11.652-2.511c-4.16-0.058-8.14,0.731-11.777,2.212c-3.65,1.486-6.953,3.668-9.739,6.386
c-2.795,2.728-5.069,5.995-6.649,9.637c-1.584,3.651-2.47,7.677-2.486,11.907c-0.016,4.236,0.842,8.276,2.405,11.95
c1.563,3.673,3.829,6.974,6.627,9.736c2.794,2.757,6.114,4.973,9.791,6.483c3.666,1.506,7.683,2.31,11.88,2.251
c0.601-0.008,1.197-0.036,1.787-0.08c0.59-0.045,1.176-0.107,1.756-0.186c0.58-0.079,1.154-0.174,1.723-0.286
c0.569-0.111,1.132-0.238,1.689-0.379l0.921,1.992c-0.597,0.152-1.201,0.288-1.81,0.408c-0.61,0.12-1.226,0.223-1.847,0.308
c-0.622,0.085-1.249,0.153-1.883,0.201c-0.634,0.049-1.272,0.078-1.917,0.088c-4.502,0.068-8.811-0.79-12.745-2.404
c-3.946-1.618-7.511-3.994-10.51-6.951c-3.004-2.963-5.437-6.506-7.115-10.448c-1.678-3.944-2.599-8.28-2.58-12.827
c0.018-4.54,0.971-8.86,2.673-12.777c1.698-3.907,4.139-7.409,7.141-10.333c2.99-2.913,6.534-5.249,10.45-6.838
c3.9-1.583,8.167-2.424,12.626-2.357c4.439,0.066,8.656,1.027,12.483,2.703c3.815,1.671,7.247,4.055,10.127,6.976
c2.875,2.916,5.205,6.373,6.822,10.198c1.616,3.824,2.522,8.023,2.548,12.43c0.016,2.84-0.335,5.597-1.008,8.226
c-0.674,2.633-1.672,5.139-2.949,7.472c-1.279,2.338-2.839,4.504-4.636,6.452C444.498,321.393,442.46,323.127,440.229,324.595
z"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" overflow="visible"/>
</clipPath>
<g clip-path="url(#SVGID_2_)" enable-background="new ">
<path fill="#4D1510" d="M440.229,324.595l-1.574-1.692c2.083-1.367,3.987-2.983,5.669-4.803
c1.678-1.816,3.136-3.836,4.332-6.018c1.194-2.177,2.127-4.516,2.758-6.973c0.63-2.454,0.959-5.028,0.945-7.679
c-0.022-4.114-0.867-8.035-2.377-11.605c-1.51-3.571-3.686-6.797-6.372-9.519c-2.69-2.726-5.895-4.949-9.458-6.505
c-3.573-1.561-7.51-2.454-11.652-2.511c-4.16-0.058-8.14,0.731-11.777,2.212c-3.65,1.486-6.953,3.668-9.739,6.386
c-2.795,2.728-5.069,5.995-6.649,9.637c-1.584,3.651-2.47,7.677-2.486,11.907c-0.016,4.236,0.842,8.276,2.405,11.95
c1.563,3.673,3.829,6.974,6.627,9.736c2.794,2.757,6.114,4.973,9.791,6.483c3.666,1.506,7.683,2.31,11.88,2.251
c0.601-0.008,1.197-0.036,1.787-0.08c0.59-0.045,1.176-0.107,1.756-0.186c0.58-0.079,1.154-0.174,1.723-0.286
c0.569-0.111,1.132-0.238,1.689-0.379l0.921,1.992c-0.597,0.152-1.201,0.288-1.81,0.408c-0.61,0.12-1.226,0.223-1.847,0.308
c-0.622,0.085-1.249,0.153-1.883,0.201c-0.634,0.049-1.272,0.078-1.917,0.088c-4.502,0.068-8.811-0.79-12.745-2.404
c-3.946-1.618-7.511-3.994-10.51-6.951c-3.004-2.963-5.437-6.506-7.115-10.448c-1.678-3.944-2.599-8.28-2.58-12.827
c0.018-4.54,0.971-8.86,2.673-12.777c1.698-3.907,4.139-7.409,7.141-10.333c2.99-2.913,6.534-5.249,10.45-6.838
c3.9-1.583,8.167-2.424,12.626-2.357c4.439,0.066,8.656,1.027,12.483,2.703c3.815,1.671,7.247,4.055,10.127,6.976
c2.875,2.916,5.205,6.373,6.822,10.198c1.616,3.824,2.522,8.023,2.548,12.43c0.016,2.84-0.335,5.597-1.008,8.226
c-0.674,2.633-1.672,5.139-2.949,7.472c-1.279,2.338-2.839,4.504-4.636,6.452C444.498,321.393,442.46,323.127,440.229,324.595
"/>
</g>
</g>
<g>
<path fill="#E53E30" d="M422.903,256.08c5.658,0.108,11.029,1.353,15.897,3.504c4.85,2.143,9.21,5.189,12.868,8.915
c3.65,3.717,6.608,8.117,8.662,12.983c2.053,4.864,3.208,10.204,3.247,15.808c0.04,5.613-1.043,10.98-3.039,15.883
c-2.002,4.92-4.927,9.381-8.565,13.159c-3.654,3.795-8.032,6.904-12.92,9.095c-4.913,2.202-10.344,3.478-16.073,3.588
c-5.761,0.111-11.281-0.966-16.325-3.014c-5.064-2.056-9.641-5.088-13.494-8.871c-3.862-3.792-6.988-8.332-9.143-13.388
c-2.155-5.058-3.333-10.622-3.302-16.455c0.032-5.822,1.266-11.358,3.463-16.374c2.19-4.998,5.333-9.474,9.191-13.203
c3.84-3.711,8.385-6.68,13.4-8.69C411.761,257.022,417.213,255.972,422.903,256.08z M440.229,324.595
c2.231-1.468,4.269-3.201,6.069-5.154c1.796-1.948,3.356-4.114,4.636-6.452c1.277-2.334,2.274-4.84,2.949-7.472
c0.673-2.629,1.024-5.386,1.008-8.226c-0.025-4.407-0.931-8.606-2.548-12.43c-1.617-3.826-3.947-7.282-6.822-10.198
c-2.88-2.922-6.312-5.305-10.127-6.976c-3.827-1.676-8.044-2.637-12.483-2.703c-4.458-0.067-8.726,0.775-12.626,2.357
c-3.916,1.589-7.46,3.925-10.45,6.838c-3.001,2.924-5.443,6.426-7.141,10.333c-1.702,3.917-2.655,8.237-2.673,12.777
c-0.018,4.547,0.902,8.884,2.58,12.827c1.678,3.942,4.111,7.485,7.115,10.448c2.999,2.957,6.563,5.333,10.51,6.951
c3.934,1.613,8.243,2.471,12.745,2.404c0.644-0.01,1.283-0.039,1.917-0.088c0.633-0.049,1.261-0.116,1.883-0.201
c0.622-0.085,1.237-0.188,1.847-0.308c0.609-0.12,1.213-0.256,1.81-0.408l-0.057-28.056l-22.413,16.004
c-0.051,0.034-0.104,0.065-0.16,0.092c-0.056,0.027-0.113,0.05-0.172,0.069c-0.059,0.019-0.119,0.033-0.179,0.043
c-0.06,0.01-0.121,0.016-0.18,0.016c-0.047,0.001-0.094-0.001-0.141-0.006c-0.047-0.005-0.094-0.012-0.14-0.023
c-0.046-0.011-0.092-0.024-0.137-0.041c-0.045-0.017-0.089-0.037-0.132-0.061c-0.1-0.05-0.191-0.114-0.271-0.187
c-0.08-0.074-0.149-0.157-0.205-0.249c-0.056-0.091-0.1-0.19-0.13-0.294s-0.045-0.212-0.045-0.322l0.06-37.332
c0-0.109,0.016-0.216,0.046-0.319c0.03-0.103,0.074-0.201,0.13-0.292c0.056-0.091,0.125-0.175,0.205-0.249
c0.08-0.074,0.17-0.138,0.27-0.189c0.043-0.02,0.087-0.038,0.131-0.053s0.09-0.028,0.135-0.037
c0.046-0.01,0.091-0.017,0.137-0.022c0.046-0.005,0.092-0.007,0.138-0.006c0.061,0.001,0.122,0.006,0.183,0.015
c0.06,0.01,0.12,0.024,0.178,0.042c0.058,0.018,0.116,0.042,0.171,0.069c0.055,0.027,0.109,0.059,0.161,0.095l22.346,15.897
l-0.033-15.913l0.94,0.009l8.801,0.081L440.229,324.595"/>
</g>
</g>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="3100px" height="3100px" viewBox="0 0 3100 3100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>tomahawk-icon</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<filter x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" id="filter-1">
<feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="2" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0" in="shadowBlurOuter1" type="matrix" result="shadowMatrixOuter1"></feColorMatrix>
<feMerge>
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
</feMerge>
</filter>
</defs>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<circle d="M1546,3051 C2374.42717,3051 3046,2379.42717 3046,1551 C3046,722.572834 2374.42717,51 1546,51 C717.572834,51 46,722.572834 46,1551 C46,2379.42717 717.572834,3051 1546,3051 Z M1546,3051" id="Oval 1" stroke="#979797" fill="#FFFFFF" sketch:type="MSShapeGroup" cx="1546" cy="1551" r="1500"></circle>
<g id="Group" sketch:type="MSLayerGroup" transform="translate(46.000000, 48.000000)">
<path d="M1500.00026,326.562245 C852.333832,326.562245 325.623384,853.409757 325.623384,1501.14467 C325.623384,2148.84339 852.297589,2675.87184 1500.00026,2675.87184 C1592.85982,2675.87184 1682.97119,2664.36909 1769.71967,2643.75096 L1769.71967,1630.53256 L961.97175,2202.26973 C954.812018,2207.15297 945.916593,2209.9744 937.346612,2209.9744 C930.693123,2209.9744 923.894994,2208.56369 917.783909,2205.05499 C903.464446,2197.74821 894.56902,2183.06231 894.56902,2167.32742 L894.56902,827.040286 C894.56902,811.305396 903.464445,796.474809 917.783909,788.951001 C932.103373,781.969774 949.026377,783.199628 961.97175,792.27884 L1769.71967,1364.0522 L1769.71967,784.284802 L1804.10807,784.284802 L2127.56161,784.284802 L2127.56161,2492.84071 C2455.75216,2284.34437 2674.34095,1918.13743 2674.34095,1501.10857 C2674.34087,853.446289 2147.48558,326.562245 1500.00026,326.562245 L1500.00026,326.562245 L1500.00026,326.562245" id="Shape" sketch:type="MSShapeGroup"></path>
<path d="M1500.00026,0.904613118 C672.870406,0.904613118 0.0726019231,673.923876 0.0726019231,1501.14494 C0.0726019231,2328.4023 672.870475,3001.38527 1500.00026,3001.38527 C2326.94928,3001.38527 2999.78337,2328.40223 2999.78337,1501.14494 C2999.74681,673.923394 2326.94887,0.904613118 1500.00026,0.904613118 L1500.00026,0.904613118 L1500.00026,0.904613118 M2127.56146,2492.87708 L2127.56146,784.321176 L1804.10793,784.321176 L1769.71952,784.321176 L1769.71952,1364.08857 L961.971604,792.315213 C949.06239,783.236001 932.103228,782.006148 917.783763,788.987375 C903.464299,796.511184 894.568874,811.341769 894.568874,827.076659 L894.568874,2167.3638 C894.568874,2183.09869 903.464299,2197.78459 917.783763,2205.09136 C923.894847,2208.60006 930.692976,2210.01078 937.346465,2210.01078 C945.880287,2210.01078 954.775711,2207.18935 961.971604,2202.30611 L1769.71952,1630.56893 L1769.71952,2643.78733 C1682.97105,2664.36929 1592.85968,2675.90821 1500.00012,2675.90821 C852.333686,2675.90821 325.623237,2148.87983 325.623237,1501.18104 C325.623237,853.482317 852.297442,326.598618 1500.00012,326.598618 C2147.48578,326.598618 2674.377,853.44613 2674.377,1501.18104 C2674.34087,1918.17376 2455.75215,2284.38047 2127.56146,2492.87708 L2072.56159,399.051282" id="Shape" fill="#E63E30" filter="url(#filter-1)" sketch:type="MSShapeGroup"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -1,21 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="400px" height="400px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<svg width="355px" height="355px" viewBox="0 0 355 355" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>album-placeholder-grid</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<radialGradient cx="50%" cy="50%" fx="50%" fy="50%" r="70.6690133%" id="radialGradient-1">
<stop stop-color="rgb(187,190,185)" offset="0%"></stop>
<stop stop-color="rgb(213,211,209)" offset="0.923389476%"></stop>
<stop stop-color="rgb(241,240,240)" offset="100%"></stop>
</radialGradient>
<path d="M201,260 C234.137087,260 261,233.137087 261,200 C261,166.862913 234.137087,140 201,140 C167.862913,140 141,166.862913 141,200 C141,233.137087 167.862913,260 201,260 Z M200.5,377 C102.469452,377 23,297.530548 23,199.5 C23,101.469452 102.469452,22 200.5,22 C298.530548,22 378,101.469452 378,199.5 C378,297.530548 298.530548,377 200.5,377 Z M200.5,377" id="path-2"></path>
<path d="M177.5,219 C200.419818,219 219,200.419818 219,177.5 C219,154.580182 200.419818,136 177.5,136 C154.580182,136 136,154.580182 136,177.5 C136,200.419818 154.580182,219 177.5,219 Z M177.5,355 C79.4694521,355 0,275.530548 0,177.5 C0,79.4694521 79.4694521,0 177.5,0 C275.530548,0 355,79.4694521 355,177.5 C355,275.530548 275.530548,355 177.5,355 Z M177.5,355" id="path-1"></path>
<filter x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" id="filter-2">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
<feGaussianBlur stdDeviation="1.5" in="shadowOffsetInner1" result="shadowBlurInner1"></feGaussianBlur>
<feComposite in="shadowBlurInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0" in="shadowInnerInner1" type="matrix" result="shadowMatrixInner1"></feColorMatrix>
<feMerge>
<feMergeNode in="SourceGraphic"></feMergeNode>
<feMergeNode in="shadowMatrixInner1"></feMergeNode>
</feMerge>
</filter>
</defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<path d="M0,0 L0,400 L400,400 L400,0 L0,0 Z M0,0" id="Rectangle 1" fill="rgb(0,0,0)"></path>
<g id="Group">
<use id="Oval 1" fill="url(#radialGradient-1)" xlink:href="#path-2"></use>
<use id="Oval 1-1" stroke="none" fill="none" xlink:href="#path-2"></use>
<path d="M201,260 C167.862913,260 141,233.137087 141,200 C141,166.862913 167.862913,140 201,140 C234.137087,140 261,166.862913 261,200 C261,233.137087 234.137087,260 201,260 Z M201.5,226 C216.135547,226 228,214.359404 228,200 C228,185.640596 216.135547,174 201.5,174 C186.864453,174 175,185.640596 175,200 C175,214.359404 186.864453,226 201.5,226 Z M201.5,226" id="Oval 2" stroke="rgb(150,150,150)" stroke-width="1" fill="rgb(137,137,137)"></path>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<rect d="M-23,-22 L-23,378 L377,378 L377,-22 L-23,-22 Z M-23,-22" id="Rectangle 1" sketch:type="MSShapeGroup" x="-23" y="-22" width="400" height="400"></rect>
<g id="Oval 1">
<use fill="#0B0A0A" fill-rule="evenodd" sketch:type="MSShapeGroup" xlink:href="#path-1"></use>
<use fill="none" xlink:href="#path-1"></use>
</g>
<circle d="M177.5,191 C184.40356,191 190,185.40356 190,178.5 C190,171.59644 184.40356,166 177.5,166 C170.59644,166 165,171.59644 165,178.5 C165,185.40356 170.59644,191 177.5,191 Z M177.5,191" id="Oval 2" stroke="#979797" fill-opacity="0.496897978" fill="#898989" filter="url(#filter-2)" sketch:type="MSShapeGroup" cx="177.5" cy="178.5" r="12.5"></circle>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -1,11 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="42px" height="42px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>arrow-up-double</title>
<svg width="45px" height="45px" viewBox="0 0 45 45" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>arrow-down-double</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page 1" fill="rgb(223,223,223)" fill-rule="evenodd">
<g id="Group" fill="rgb(0,0,0)">
<path d="M2.35400391,38.0279541 L39.5150032,38.0279541 C40.6710032,38.0279541 41.7310033,37.3789541 42.2560031,36.3469541 C42.4830031,35.9079541 42.5930032,35.4279541 42.5930032,34.9499542 C42.5930032,34.3129541 42.3930032,33.6759541 42.0040032,33.1419542 L23.4220024,7.55995345 C22.8430024,6.76095343 21.9170024,6.2909534 20.9320024,6.2909534 C19.9470024,6.2909534 19.0210024,6.7629534 18.4430023,7.55995345 L-0.137997031,33.1419542 C-0.817997038,34.0769542 -0.912997007,35.3199542 -0.388997018,36.3469541 C0.135986328,37.3790283 1.19702148,38.0279541 2.35400391,38.0279541 C2.35400391,38.0279541 1.19702148,38.0279541 2.35400391,38.0279541 L2.35400391,38.0279541" id="Shape" fill="rgb(100,100,100)" transform="translate(-207.065652, -202.840546) rotate(-180) translate(207.065652, 202.840546)"></path>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<g id="arrow-up-double" fill="rgb(0,0,0)" transform="translate(22.000000, 23.500000) rotate(-180.000000) translate(-22.000000, -23.500000)">
<g id="Page 1" fill="rgb(222,223,222)">
<g id="Group" fill="rgb(0,0,0)">
<path d="M3.48530778,39.7090464 L40.6463071,39.7090464 C41.8023053,39.7090464 42.8623067,39.0600481 43.3873082,38.0280466 C43.6143056,37.5890474 43.7243062,37.1090479 43.7243062,36.6310472 C43.7243062,35.9940462 43.5243054,35.3570452 43.1353055,34.8230448 L24.5533067,9.24104548 C23.9743062,8.44204569 23.0483056,7.9720459 22.0633069,7.9720459 C21.0783063,7.9720459 20.1523057,8.44404554 19.5743066,9.24104548 L0.993306841,34.8230448 C0.313306834,35.7580462 0.218306865,37.0010462 0.742306854,38.0280466 C1.2672902,39.0601206 2.32832536,39.7090464 3.48530778,39.7090464 C3.48530778,39.7090464 2.32832536,39.7090464 3.48530778,39.7090464 L3.48530778,39.7090464" id="Shape" fill="rgb(99,100,99)"></path>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,11 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="42px" height="42px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<svg width="45px" height="45px" viewBox="0 0 45 45" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>arrow-right-double</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page 1" fill="rgb(223,223,223)" fill-rule="evenodd">
<g id="Group" fill="rgb(0,0,0)">
<path d="M7.32121281,41.8181084 L34.5477114,41.8181084 C35.3946701,41.8181084 36.1712932,40.932299 36.5559413,39.5237392 C36.7222559,38.9245553 36.8028488,38.2694112 36.8028488,37.616997 C36.8028488,36.7475662 36.6563162,35.8781353 36.3713102,35.1492876 L22.7569611,0.232836341 C22.3327491,-0.857705628 21.6543029,-1.49920092 20.9326296,-1.49920092 C20.2109563,-1.49920092 19.5325101,-0.854975896 19.1090307,0.232836341 L5.4954153,35.1492876 C4.99720429,36.4254537 4.9276013,38.1220039 5.31151684,39.5237392 C5.69615284,40.9324003 6.47353431,41.8181084 7.32121281,41.8181084 C7.32121281,41.8181084 6.47353431,41.8181084 7.32121281,41.8181084 L7.32121281,41.8181084" id="Shape" fill="rgb(100,100,100)" transform="translate(-213.065652, -198.840546) rotate(-270) translate(213.065652, 198.840546)"></path>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<g id="arrow-up-double" fill="rgb(0,0,0)" transform="translate(22.000000, 22.500000) rotate(-270.000000) translate(-22.000000, -22.500000)">
<g id="Page 1" fill="rgb(222,223,222)">
<g id="Group" fill="rgb(0,0,0)">
<path d="M3.76020197,38.3028483 L40.9212013,38.3028483 C42.0771995,38.3028483 43.1372009,37.65385 43.6622024,36.6218485 C43.8891998,36.1828494 43.9992004,35.7028498 43.9992004,35.2248492 C43.9992004,34.5878481 43.7991996,33.9508471 43.4101997,33.4168467 L24.8282009,7.83484741 C24.2492004,7.03584762 23.3231998,6.56584783 22.3382011,6.56584783 C21.3532005,6.56584783 20.4271999,7.03784748 19.8492008,7.83484741 L1.26820104,33.4168467 C0.588201029,34.3518481 0.49320106,35.5948481 1.01720105,36.6218485 C1.5421844,37.6539225 2.60321955,38.3028483 3.76020197,38.3028483 C3.76020197,38.3028483 2.60321955,38.3028483 3.76020197,38.3028483 L3.76020197,38.3028483" id="Shape" fill="rgb(99,100,99)"></path>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -3,11 +3,13 @@
<title>artist-placeholder-grid</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<g id="artist-placeholder" fill="rgb(0,0,0)">
<g id="Page 1" fill="rgb(214,215,214)">
<path d="M0,200 L200,200 L200,0 L0,0 L0,200 Z M0,200" id="Rectangle 4" fill="rgb(0,0,0)"></path>
<path d="M187,78 C187,76 185,74 182,74 L125,73 L107,16 C106,14 104,13 102,13 C99,13 98,14 97,16 L78,73 L21,74 C19,74 17,76 16,78 C16,80 16,83 18,84 L63,120 L47,178 C46,180 47,182 49,184 C51,185 53,185 55,184 L102,149 L149,184 C149,184 150,185 152,185 C153,185 154,184 155,184 C156,182 157,180 156,178 L140,120 L185,84 C187,83 188,80 187,78 C187,78 188,80 187,78 L187,78 M131,114 C129,115 128,117 129,120 L142,166 L105,138 C103,137 101,137 99,138 L61,166 L74,120 C75,117 74,115 73,114 L36,85 L82,84 C84,84 86,82 87,80 L102,34 L117,80 C117,82 119,84 122,84 L167,85 L131,114" id="Shape" fill="rgb(254,254,254)"></path>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<rect d="M0,0 L0,200 L200,200 L200,0 L0,0 Z M0,0" id="Rectangle-1" sketch:type="MSShapeGroup" x="0" y="0" width="200" height="200"></rect>
<g sketch:type="MSLayerGroup" transform="translate(14.000000, 6.000000)" id="artist-placeholder" fill="#9B9B9B">
<g sketch:type="MSShapeGroup">
<g id="Page-1">
<path d="M171,65 C171,63 169,61 166,61 L109,60 L91,3 C90,1 88,0 86,0 C83,0 82,1 81,3 L62,60 L5,61 C3,61 1,63 0,65 C0,67 0,70 2,71 L47,107 L31,165 C30,167 31,169 33,171 C35,172 37,172 39,171 L86,136 L133,171 C133,171 134,172 136,172 C137,172 138,171 139,171 C140,169 141,167 140,165 L124,107 L169,71 C171,70 172,67 171,65 C171,65 172,67 171,65 L171,65 M115,101 C113,102 112,104 113,107 L126,153 L89,125 C87,124 85,124 83,125 L45,153 L58,107 C59,104 58,102 57,101 L20,72 L66,71 C68,71 70,69 71,67 L86,21 L101,67 C101,69 103,71 106,71 L151,72 L115,101" id="Shape"></path>
</g>
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

14
data/images/inbox.svg Normal file
View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>inbox</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M4,50 L4,91 L97,91 L97,50 L4,50 Z M25.7265625,19 L4,50 L97,50 L75.3945312,19 L25.7265625,19 Z M25.7265625,19" id="Rectangle 8" fill="#FFFFFF"></path>
<g id="Group" transform="translate(1.000000, 3.000000)">
<path id="Shape" fill="#9B9B9B" d="M97.3548503,45.9181572 L75.6276213,17.2579381 C75.0275732,16.4663384 74.0902433,16 73.0940852,16 L57.5359773,16 L57.5359773,22.3523915 L71.5135665,22.3523915 L91.6426285,48.9023312 L91.6426285,87.6436897 L6.3554106,87.6436897 L6.3554106,48.9023312 L26.4844725,22.3523915 L41.0072035,22.3523915 L41.0072035,16 L24.901993,16 C23.9058348,16 22.9704658,16.464379 22.3684569,17.2579381 L0.643188731,45.9181572 C0.225508244,46.4667906 0,47.1427854 0,47.8344554 L0,90.8198855 C0,92.5755125 1.42364335,94 3.17868577,94 L94.8213142,94 C96.5783176,94 98,92.5735531 98,90.8198855 L98,47.8344554 C98,47.1427854 97.7744918,46.46875 97.3548503,45.9181572 L97.3548503,45.9181572 Z M97.3548503,45.9181572"></path>
<path id="Shape" fill="#9B9B9B" d="M62.1778225,50.999412 L62.1778225,61.1512722 L35.8199786,61.1512722 L35.8199786,50.999412 C35.8199786,49.9353752 34.9614682,49.0770259 33.9060517,49.0770259 L17.7243125,49.0770259 L30.466103,31.8467501 L30.9150488,31.8467501 C30.5862157,30.5750481 30.6964831,29.2262134 31.2616035,28 L29.5052015,28 C28.8967618,28 28.3277033,28.2867757 27.9673653,28.7752833 L12.3783132,49.8542869 C11.9451199,50.4397049 11.8801409,51.216966 12.2030668,51.8656724 C12.5279618,52.5163566 13.1915352,52.9257537 13.9161495,52.9257537 L31.9901559,52.9257537 L31.9901559,63.0776139 C31.9901559,64.1396729 32.8486663,65 33.9080208,65 L64.0917493,65 C65.1530729,65 66.0076452,64.1396729 66.0076452,63.0776139 L66.0076452,52.9257537 L84.0836207,52.9257537 C84.810204,52.9257537 85.4718083,52.5163566 85.7967033,51.8656724 C86.1215983,51.2189438 86.0526812,50.4397049 85.6214569,49.8542869 L70.0304358,28.7752833 C69.6700977,28.2867757 69.0990702,28 68.4925996,28 L67.2895036,28 C67.8703764,29.2598354 67.9688295,30.6541586 67.6084914,31.9495938 L80.2774267,49.0770259 L64.0937184,49.0770259 C63.0323948,49.0790036 62.1778225,49.9353752 62.1778225,50.999412 L62.1778225,50.999412 Z M62.1778225,50.999412"></path>
<path id="Shape" fill="#67ABFE" d="M34.2040126,28.7107082 C33.8839325,29.3487239 33.9440687,30.1159085 34.3592029,30.6952111 L34.5784093,31.0044334 L46.9722983,48.2152015 C47.3292361,48.7103487 47.893741,49 48.4989833,49 C49.1042257,49 49.6706704,48.7103487 50.0256683,48.2152015 L62.4195574,31.0044334 L62.6387637,30.6952111 C63.0577777,30.1159085 63.115974,29.3487239 62.7939541,28.7107082 C62.473874,28.0746495 61.8240144,27.6734433 61.1120787,27.6734433 L52.9025094,27.6734433 L52.9025094,27.1978672 L52.9025094,22.0839557 L52.9025094,15.7390262 L52.9025094,4.44262492 C52.9025094,1.99233135 50.931592,0 48.4989833,0 C46.0663746,0 44.0954572,1.99233135 44.0954572,4.44262492 L44.0954572,15.7390262 L44.0954572,22.0839557 L44.0954572,27.1978672 L44.0954572,27.6734433 L35.8839481,27.6734433 C35.1758921,27.6734433 34.5279724,28.0746495 34.2040126,28.7107082 L34.2040126,28.7107082 Z M34.2040126,28.7107082"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="71px" height="71px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<svg width="50px" height="50px" viewBox="0 0 50 50" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>info</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<path d="M35.5340004,11 C22.0050001,11 11,22.0059996 11,35.5349998 C11,49.0640001 22.0050001,60.0720005 35.5340004,60.0720005 C49.0630007,60.0720005 60.0699997,49.0640001 60.0699997,35.5349998 C60.0699997,22.0059996 49.0630531,11 35.5340004,11 L35.5340004,11 L35.5340004,11 M36.2140541,18.2849731 C39.2040541,18.2849731 41.636054,20.7189732 41.636054,23.7089729 C41.636054,26.6989727 39.2040541,29.1319728 36.2140541,29.1319728 C33.2240541,29.1319728 30.7900543,26.6989727 30.7900543,23.7089729 C30.7900543,20.7189732 33.2240028,18.2849731 36.2140541,18.2849731 C36.2140541,18.2849731 33.2240028,18.2849731 36.2140541,18.2849731 L36.2140541,18.2849731 M43.6360512,50.75 C43.2080512,51.206 42.7490512,51.303 42.4390512,51.303 L29.9860511,51.303 C29.6750511,51.303 29.2150511,51.206 28.7890511,50.75 C28.4580511,50.395 28.290051,49.932 28.290051,49.374 C28.290051,48.807 28.453051,48.3319999 28.7750511,47.9649999 C29.2050511,47.4789999 29.6710511,47.3769999 29.986051,47.3769999 L31.4000511,47.3769999 L31.4000511,36.9980002 L29.986051,36.9980002 C29.675051,36.9980002 29.215051,36.9020002 28.789051,36.4450002 C28.458051,36.0900002 28.290051,35.6270002 28.290051,35.0680003 C28.290051,34.5020003 28.453051,34.0290002 28.775051,33.6620002 C29.205051,33.1740002 29.671051,33.0720003 29.986051,33.0720003 L40.4180511,33.0720003 C40.7550511,33.0720003 41.0270512,33.3440003 41.0270512,33.6790003 L41.0270512,47.3759998 L42.4390511,47.3759998 C42.7540511,47.3759998 43.2210511,47.4779998 43.6480511,47.9639998 C43.9720511,48.3309998 44.1360511,48.8059998 44.1360511,49.3729998 C44.1360512,49.9329834 43.9680214,50.3950195 43.6360512,50.75 C43.6360512,50.75 43.9680214,50.3950195 43.6360512,50.75 L43.6360512,50.75" id="Shape" fill="rgb(80,81,80)"></path>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="info" sketch:type="MSLayerGroup" fill="#A1B8CC">
<g id="Page 1" sketch:type="MSShapeGroup">
<path d="M24.5340004,0 C11.0050001,0 0,11.0059996 0,24.5349998 C0,38.0640001 11.0050001,49.0720005 24.5340004,49.0720005 C38.0630007,49.0720005 49.0699997,38.0640001 49.0699997,24.5349998 C49.0699997,11.0059996 38.0630531,0 24.5340004,0 L24.5340004,0 M25.2140541,7.2849731 C28.2040541,7.2849731 30.636054,9.7189732 30.636054,12.7089729 C30.636054,15.6989727 28.2040541,18.1319728 25.2140541,18.1319728 C22.2240541,18.1319728 19.7900543,15.6989727 19.7900543,12.7089729 C19.7900543,9.7189732 22.2240028,7.2849731 25.2140541,7.2849731 C25.2140541,7.2849731 22.2240028,7.2849731 25.2140541,7.2849731 L25.2140541,7.2849731 M32.6360512,39.75 C32.2080512,40.206 31.7490512,40.303 31.4390512,40.303 L18.9860511,40.303 C18.6750511,40.303 18.2150511,40.206 17.7890511,39.75 C17.4580511,39.395 17.290051,38.932 17.290051,38.374 C17.290051,37.807 17.453051,37.3319999 17.7750511,36.9649999 C18.2050511,36.4789999 18.6710511,36.3769999 18.986051,36.3769999 L20.4000511,36.3769999 L20.4000511,25.9980002 L18.986051,25.9980002 C18.675051,25.9980002 18.215051,25.9020002 17.789051,25.4450002 C17.458051,25.0900002 17.290051,24.6270002 17.290051,24.0680003 C17.290051,23.5020003 17.453051,23.0290002 17.775051,22.6620002 C18.205051,22.1740002 18.671051,22.0720003 18.986051,22.0720003 L29.4180511,22.0720003 C29.7550511,22.0720003 30.0270512,22.3440003 30.0270512,22.6790003 L30.0270512,36.3759998 L31.4390511,36.3759998 C31.7540511,36.3759998 32.2210511,36.4779998 32.6480511,36.9639998 C32.9720511,37.3309998 33.1360511,37.8059998 33.1360511,38.3729998 C33.1360512,38.9329834 32.9680214,39.3950195 32.6360512,39.75 C32.6360512,39.75 32.9680214,39.3950195 32.6360512,39.75 L32.6360512,39.75" id="Shape"></path>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="82px" height="82px" viewBox="0 0 82 82" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Network Activity</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<radialGradient cx="50%" cy="0%" fx="50%" fy="0%" r="100%" id="radialGradient-1">
<stop stop-color="#FF374A" offset="0%"></stop>
<stop stop-color="#B60000" offset="100%"></stop>
</radialGradient>
<filter x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" id="filter-2">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
<feGaussianBlur stdDeviation="1.5" in="shadowOffsetInner1" result="shadowBlurInner1"></feGaussianBlur>
<feComposite in="shadowBlurInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0" in="shadowInnerInner1" type="matrix" result="shadowMatrixInner1"></feColorMatrix>
<feMerge>
<feMergeNode in="SourceGraphic"></feMergeNode>
<feMergeNode in="shadowMatrixInner1"></feMergeNode>
</feMerge>
</filter>
<filter x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" id="filter-3">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
<feGaussianBlur stdDeviation="1.5" in="shadowOffsetInner1" result="shadowBlurInner1"></feGaussianBlur>
<feComposite in="shadowBlurInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0" in="shadowInnerInner1" type="matrix" result="shadowMatrixInner1"></feColorMatrix>
<feMerge>
<feMergeNode in="SourceGraphic"></feMergeNode>
<feMergeNode in="shadowMatrixInner1"></feMergeNode>
</feMerge>
</filter>
<radialGradient cx="-93.3681184%" cy="64.1660344%" fx="-93.3681184%" fy="64.1660344%" r="100%" id="radialGradient-4">
<stop stop-color="#FF374A" offset="0%"></stop>
<stop stop-color="#B60000" offset="100%"></stop>
</radialGradient>
</defs>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="Group" sketch:type="MSLayerGroup" transform="translate(29.000000, 10.000000)" fill="url(#radialGradient-1)">
<path d="M6,4 C6,3.61624999 6.31125,3.30749997 6.69499999,3.30749997 C6.69624999,3.30749997 6.70124999,3.30749997 6.70499999,3.30874998 C6.84999999,1.48499999 8.37249998,0.048749925 10.2349998,0.048749925 C12.0937498,0.048749925 13.6187499,1.48499999 13.76125,3.30874998 C13.76625,3.30749997 13.76875,3.30749997 13.77375,3.30749997 C14.155,3.30749997 14.46375,3.61624997 14.46375,4 C14.46375,4.28124999 14.2975,4.52375 14.055,4.63124999 C14.195,5.04125001 14.27375,5.47874996 14.27375,5.93499997 C14.27375,8.16624993 12.46375,9.97374991 10.235,9.97374991 C8.00375006,9.97374976 6.1925,8.16624993 6.1925,5.93499997 C6.1925,5.47874996 6.27249999,5.04125001 6.41125,4.63124999 C6.17000001,4.52375 6,4.28124999 6,4" id="path932" filter="url(#filter-2)" sketch:type="MSShapeGroup"></path>
<path d="M13.75,62 L12.45,62 L10.2162501,56.5512497 L7.97999978,62 L6.67750001,62 C3.06125015,62 0.534999967,58.6249999 0.534999967,53.8062502 C0.527499967,53.4325002 0.369999968,44.6300001 1.11374997,40.8412505 C1.65999997,38.0587505 2.65749998,37.2500007 3.39125,37.0575006 L4.36875001,12.8487499 C4.38250001,12.5437499 4.63125,12.3024999 4.93750002,12.3024999 L8.26124992,12.3024999 C8.56374992,12.3024999 8.81249994,12.5412499 8.82749993,12.8437499 L9.82749995,33.3787492 L10.2162499,33.8237492 L10.6024999,33.3787492 L11.6012499,12.8437499 C11.6174999,12.5412499 11.8649999,12.3024999 12.1675,12.3024999 L15.49375,12.3024999 C15.79625,12.3024999 16.05,12.5437499 16.0625,12.8487499 L17.03625,37.0537503 C17.75125,37.2300003 18.85125,37.9875003 19.3187499,40.8587502 C19.94,44.6562503 19.8974999,53.4275005 19.8949999,53.7950001 C19.8949999,58.6249999 17.3699999,62 13.75,62" id="path944" filter="url(#filter-3)" sketch:type="MSShapeGroup" transform="translate(10.206284, 37.151250) rotate(-180.000000) translate(-10.206284, -37.151250) "></path>
</g>
<g id="Group" sketch:type="MSLayerGroup" transform="translate(53.000000, 18.000000)" fill="url(#radialGradient-1)">
<path d="M6.25,2.5 L6.25875,2.5 C6.3675,1.13374993 7.50875,0.0575000048 8.90250001,0.0575000048 C10.2975001,0.0575000048 11.4387501,1.13375001 11.5450001,2.5 L11.5537501,2.5 C11.8412501,2.5 12.0725001,2.73250001 12.0725001,3.01750001 C12.0725001,3.22875001 11.9450001,3.41000002 11.7662501,3.48999999 C11.8700001,3.7975 11.9262501,4.12500001 11.9262501,4.4675 C11.9262501,6.14000008 10.5737501,7.49375001 8.90250022,7.49375001 C7.2312502,7.49375001 5.87625021,6.14000008 5.87625021,4.4675 C5.87625021,4.12500001 5.93375021,3.79749998 6.04000021,3.48999999 C5.85875001,3.40999998 5.73375002,3.22875001 5.73375002,3.01750001 C5.73375002,2.73250001 5.96375,2.5 6.25,2.5" id="path940" sketch:type="MSShapeGroup"></path>
<path d="M10.9140107,46.8300004 L9.93776063,46.8300004 L8.26401065,42.7487503 L6.59026067,46.8300004 L5.61651069,46.8300004 C2.90651071,46.8300004 1.01276058,44.3037506 1.01276058,40.6912507 C1.00901058,40.4125007 0.889010577,33.8187505 1.44651058,30.9812506 C1.85651059,28.8962506 2.60401058,28.2912506 3.15526056,28.1462507 L3.88526055,10.0112502 C3.89526055,9.78375024 4.08401054,9.60375023 4.31026055,9.60375023 L6.80151059,9.60375023 C7.02776058,9.60375023 7.21276059,9.78125023 7.22526058,10.0087502 L7.9752606,25.3912499 L8.26401061,25.7249999 L8.55651061,25.3912499 L9.30526058,10.0087502 C9.31401058,9.78125023 9.50276059,9.60375023 9.72776058,9.60375023 L12.2190106,9.60375023 C12.4477606,9.60375023 12.6352606,9.78375022 12.6452606,10.0112502 L13.3752606,28.1437497 C13.9102606,28.2762497 14.7315106,28.8424997 15.0852606,30.9949996 C15.5515106,33.8400008 15.5165106,40.4087507 15.5165106,40.6837507 C15.5165106,44.3037506 13.6240105,46.8300004 10.9140107,46.8300004 Z M10.9140107,46.8300004" id="path952" sketch:type="MSShapeGroup" transform="translate(8.258255, 28.216875) rotate(-180.000000) translate(-8.258255, -28.216875) "></path>
</g>
<g id="Group" sketch:type="MSLayerGroup" transform="translate(12.000000, 18.000000)" fill="url(#radialGradient-4)">
<path d="M13.4598564,24.1621039 L11.2636064,33.4007741 C11.3666619,33.8297424 11.4755508,34.2372622 11.6223564,34.77254 C11.9062453,35.8207145 12.3369397,37.4032345 13.1108286,40.6932344 C13.510412,43.199901 12.7793008,44.6369448 12.0948564,45.4006946 C11.4522175,46.1196827 10.5781898,46.5318653 9.70124543,46.5318653 L9.2715232,46.5318653 L6.82346776,40.8032739 L4.37443993,46.5309328 L4.04291216,46.5309328 C3.12805106,46.5309328 2.22971771,46.1206153 1.58416212,45.408155 C0.907495469,44.6602582 0.176384383,43.2362701 0.554578768,40.6661907 C1.36443988,37.1216073 1.83110651,35.4905953 2.14027325,34.4125797 C2.24235658,34.0516869 2.32693992,33.7579368 2.39985658,33.4735123 L0.167634351,24.0819051 C0.135551018,23.9532146 0.168606573,23.8198614 0.252217682,23.7182146 C0.337773237,23.6165678 0.467078794,23.5568852 0.602217696,23.5568852 L2.52138434,23.5568852 L3.11930102,9.37575449 C3.12805102,9.1454172 3.3244399,8.96357195 3.56360656,8.96357195 L5.29027325,8.96357195 C5.5284677,8.96357195 5.72388437,9.14355211 5.73749548,9.37202433 L6.45596772,23.5568859 L7.20360661,23.5568859 L7.92207885,9.37202433 C7.93471774,9.1435521 8.13110663,8.96357195 8.36930108,8.96357195 L10.0940233,8.96357195 C10.3341622,8.96357195 10.5324956,9.14541718 10.5422178,9.37575449 L11.1362456,23.5568852 L13.0437456,23.5568852 L13.0524956,23.5568852 C13.29944,23.5568852 13.4987456,23.7489884 13.4987456,23.9858535 C13.4987453,24.048334 13.4851342,24.1089491 13.4598564,24.1621039" id="path1076" sketch:type="MSShapeGroup" transform="translate(6.827150, 27.747719) rotate(-180.000000) translate(-6.827150, -27.747719) "></path>
<path d="M2.93902801,0.78146832 L2.94097246,0.78146832 C3.4105558,0.78146832 4.0561113,0.878452449 4.44305575,1.33632946 C4.53152797,1.44170644 4.60638908,1.53775803 4.67347242,1.63007946 C5.13527797,0.745099296 6.04333357,0.136150886 6.72000022,0.136150886 C7.4550002,0.136150886 8.33000023,0.742301658 8.77041685,1.62168665 C8.836528,1.53123024 8.9104171,1.43797625 8.99791678,1.33632946 C9.38291669,0.877519908 10.0275001,0.78146832 10.5000002,0.78146832 C10.9413891,0.78146832 11.76875,0.901765933 11.76875,1.13210323 C11.76875,1.15541673 11.7609728,1.23281752 11.6511118,1.26172624 C11.5898611,1.27664691 11.529584,1.27944449 11.309861,1.26359135 C11.0463889,1.26359135 10.7897223,1.61236115 10.5563892,2.14111113 C10.5884725,2.1383136 10.6186115,2.12619057 10.6536113,2.12619057 C10.9686112,2.12619057 11.2408331,2.26793656 11.3750003,2.35279763 C11.4595835,2.40408738 11.7279169,2.58686514 11.7279169,2.75938503 C11.7279169,2.87128969 11.6190285,2.97013885 11.3390283,2.89087316 C11.326389,2.88621036 11.3118062,2.88527788 11.2952783,2.88527788 C10.8500003,2.88527788 10.1869446,4.5797024 9.84083355,5.83863089 C9.83500017,5.86474233 9.82625034,5.88992085 9.81847267,5.91603185 C9.8165279,5.92162713 9.8145836,5.92815488 9.81263929,5.93375016 L9.81069453,5.9356151 C9.48305574,7.28500004 8.22694481,8.29214283 6.72000018,8.29214283 C5.21402793,8.29214283 3.95597246,7.28500004 3.62736135,5.9356151 L3.62541687,5.93375016 C3.62347246,5.92815488 3.62152804,5.92162713 3.61958356,5.91603185 C3.61375024,5.88992085 3.60402803,5.86474233 3.59819466,5.83863089 C3.25402802,4.5797024 2.59000024,2.88527788 2.14375022,2.88527788 C2.12819466,2.88527788 2.11361133,2.88621042 2.10000022,2.89087312 C1.82291689,2.970139 1.71111132,2.87128979 1.71111132,2.75938502 C1.71111132,2.53837312 2.26527798,2.12619056 2.78638905,2.12619056 C2.81944461,2.12619056 2.84472238,2.13738104 2.87583349,2.14017866 C2.63763912,1.61236115 2.37513914,1.26545641 2.10291689,1.26545641 C2.03291689,1.27105165 1.97361133,1.27384927 1.92597245,1.27384927 C1.86472245,1.27384927 1.67027799,1.27384927 1.67027799,1.13210324 C1.67027807,0.901765933 2.49763913,0.78146832 2.93902801,0.78146832" id="path1080" sketch:type="MSShapeGroup" transform="translate(6.719514, 4.214147) rotate(-180.000000) translate(-6.719514, -4.214147) "></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

23
data/images/new-inbox.svg Normal file
View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>new-inbox</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">
<stop stop-color="#039EFF" offset="0%"></stop>
<stop stop-color="#67ABFE" offset="100%"></stop>
</linearGradient>
<filter x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" id="filter-2">
<feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="2" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0" in="shadowBlurOuter1" type="matrix" result="shadowMatrixOuter1"></feColorMatrix>
<feMerge>
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
</feMerge>
</filter>
</defs>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<circle d="M49,73 C62.8071194,73 74,61.8071194 74,48 C74,34.1928806 62.8071194,23 49,23 C35.1928806,23 24,34.1928806 24,48 C24,61.8071194 35.1928806,73 49,73 Z M49,73" id="Oval 2" fill="url(#linearGradient-1)" filter="url(#filter-2)" sketch:type="MSShapeGroup" cx="49" cy="48" r="25"></circle>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

18
data/images/outbox.svg Normal file
View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>outbox</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="inbox" sketch:type="MSLayerGroup" transform="translate(1.000000, 2.000000)">
<g id="Page 1" sketch:type="MSShapeGroup">
<path d="M3,50 L3,91 L96,91 L96,50 L3,50 L3,50 Z M24.7265625,19 L3,50 L96,50 L74.3945312,19 L24.7265625,19 L24.7265625,19 Z M24.7265625,19" id="Rectangle 8" fill="#FFFFFF"></path>
<g id="Group">
<path d="M75.6276213,20.2579381 C75.0275732,19.4663384 74.0902433,19 73.0940852,19 L70.2802734,20.2579381 L71.5135665,25.3523915 L91.6426285,51.9023312 L91.6426285,90.6436897 L6.3554106,90.6436897 L6.3554106,51.9023312 L26.4844725,25.3523915 L26.4844723,20.2579381 L24.901993,19 C23.9058348,19 22.9704658,19.464379 22.3684569,20.2579381 L0.643188731,48.9181572 C0.225508244,49.4667906 0,50.1427854 0,50.8344554 L0,93.8198855 C0,95.5755125 1.42364335,97 3.17868577,97 L94.8213142,97 C96.5783176,97 98,95.5735531 98,93.8198855 L98,50.8344554 C98,50.1427854 97.7744918,49.46875 97.3548503,48.9181572 L75.6276213,20.2579381 Z M75.6276213,20.2579381" id="Shape" fill="#9B9B9B"></path>
<path d="M62.1778225,53.999412 L62.1778225,64.1512722 L35.8199786,64.1512722 L35.8199786,53.999412 C35.8199786,52.9353752 34.9614682,52.0770259 33.9060517,52.0770259 L17.7243125,52.0770259 L30.466103,34.8467501 L30.9150488,34.8467501 C30.5862157,33.5750481 30.6964831,32.2262134 31.2616035,31 L29.5052015,31 C28.8967618,31 28.3277033,31.2867757 27.9673653,31.7752833 L12.3783132,52.8542869 C11.9451199,53.4397049 11.8801409,54.216966 12.2030668,54.8656724 C12.5279618,55.5163566 13.1915352,55.9257537 13.9161495,55.9257537 L31.9901559,55.9257537 L31.9901559,66.0776139 C31.9901559,67.1396729 32.8486663,68 33.9080208,68 L64.0917493,68 C65.1530729,68 66.0076452,67.1396729 66.0076452,66.0776139 L66.0076452,55.9257537 L84.0836207,55.9257537 C84.810204,55.9257537 85.4718083,55.5163566 85.7967033,54.8656724 C86.1215983,54.2189438 86.0526812,53.4397049 85.6214569,52.8542869 L70.0304358,31.7752833 C69.6700977,31.2867757 69.0990702,31 68.4925996,31 L67.2895036,31 C67.8703764,32.2598354 67.9688295,33.6541586 67.6084914,34.9495938 L80.2774267,52.0770259 L64.0937184,52.0770259 C63.0323948,52.0790036 62.1778225,52.9353752 62.1778225,53.999412 L62.1778225,53.999412 L62.1778225,53.999412 Z M62.1778225,53.999412" id="Shape" fill="#9B9B9B"></path>
<path d="M34.7040126,29.2107082 C34.3839325,29.8487239 34.4440687,30.6159085 34.8592029,31.1952111 L35.0784093,31.5044334 L47.4722983,48.7152015 C47.8292361,49.2103487 48.393741,49.5 48.9989833,49.5 C49.6042257,49.5 50.1706704,49.2103487 50.5256683,48.7152015 L62.9195574,31.5044334 L63.1387637,31.1952111 C63.5577777,30.6159085 63.615974,29.8487239 63.2939541,29.2107082 C62.973874,28.5746495 62.3240144,28.1734433 61.6120787,28.1734433 L53.4025094,28.1734433 L53.4025094,27.6978672 L53.4025094,22.5839557 L53.4025094,16.2390262 L53.4025094,4.94262492 C53.4025094,2.49233135 51.431592,0.5 48.9989833,0.5 C46.5663746,0.5 44.5954572,2.49233135 44.5954572,4.94262492 L44.5954572,16.2390262 L44.5954572,22.5839557 L44.5954572,27.6978672 L44.5954572,28.1734433 L36.3839481,28.1734433 C35.6758921,28.1734433 35.0279724,28.5746495 34.7040126,29.2107082 L34.7040126,29.2107082 L34.7040126,29.2107082 Z M34.7040126,29.2107082" id="Shape" fill="#99CC00" transform="translate(49.000000, 25.000000) rotate(-180.000000) translate(-49.000000, -25.000000) "></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

13
data/images/refresh.svg Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="44px" height="44px" viewBox="0 0 44 44" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>refresh</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="refresh" transform="translate(0.000000, 1.000000)" fill="#FFFFFF">
<g id="Page 1">
<path d="M43.8927655,25.3359998 L37.0097656,15.8609994 C36.8167656,15.5939995 36.5067655,15.4359994 36.1767656,15.4359994 C35.8477656,15.4359994 35.5367656,15.5939994 35.3437656,15.8609994 L28.4607657,25.3349994 C28.2317657,25.6489994 28.2007657,26.0639994 28.3767657,26.4079994 C28.5517657,26.7539994 28.9057656,26.9699994 29.2937657,26.9699994 L33.1067656,26.9699994 C32.2747656,28.3759994 31.2177656,29.6569994 29.9327656,30.7409993 C26.9367655,33.2659994 23.1357657,34.4739993 19.2317654,34.1419993 C15.3277653,33.8089993 11.7867652,31.9769993 9.26076567,28.9809995 C6.73476612,25.9849997 5.52876555,22.1849995 5.86076557,18.2809997 C6.19276556,14.3759997 8.0247656,10.8349996 11.0207654,8.30899958 C14.0167652,5.78299955 17.8147656,4.57699946 21.7207652,4.90899948 C25.5477651,5.23499949 29.0417653,7.01299957 31.5577651,9.91299967 C32.4277651,10.9149996 33.9457651,11.0219996 34.9487652,10.1539997 C35.9507651,9.28399966 36.0577651,7.76599965 35.1887651,6.76399956 C31.8467651,2.91299949 27.2097651,0.552999593 22.1277653,0.118999578 C16.9457651,-0.319000416 11.900765,1.28299961 7.92276535,4.63499937 C3.94576536,7.98899946 1.51276551,12.6899997 1.07176552,17.8729993 C0.630765507,23.0569993 2.23276553,28.0999995 5.58676539,32.0769998 C8.94076524,36.054 13.6417657,38.4869996 18.8247653,38.929 C19.3877653,38.977 19.9497653,39 20.5087653,39 C25.0917655,39 29.4847652,37.402 33.0287658,34.414 C35.4547659,32.369 37.3017655,29.8200002 38.4777657,26.9689999 L43.0587655,26.9689999 C43.4467655,26.9689999 43.7997655,26.7519999 43.9757655,26.4069999 C44.15276,26.0630506 44.1197705,25.6489881 43.8927655,25.3359998 C43.8927655,25.3359998 44.1197705,25.6489881 43.8927655,25.3359998 L43.8927655,25.3359998" id="Shape"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="296px" height="325px" viewBox="0 0 296 325" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>splash-unrounded</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<radialGradient cx="50%" cy="38.2163462%" fx="50%" fy="38.2163462%" r="321.977806%" id="radialGradient-1">
<stop stop-color="#FEFFFE" offset="0%"></stop>
<stop stop-color="#000000" offset="100%"></stop>
</radialGradient>
</defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="splash" sketch:type="MSLayerGroup">
<g id="Page-1" sketch:type="MSShapeGroup">
<rect id="Rectangle-4" fill="url(#radialGradient-1)" x="0" y="0" width="296" height="325"></rect>
<g id="tomahawk-icon" transform="translate(108.523976, 83.845121)">
<g id="Page-1">
<circle id="Oval-1" stroke="#979797" fill="#FFFFFF" cx="43.976024" cy="43.976024" r="43.976024"></circle>
<g id="Group">
<path d="M43.9760316,9.57393941 C24.9881687,9.57393941 9.54641449,25.019712 9.54641449,44.0095827 C9.54641449,62.9983923 24.9871061,78.4494695 43.9760316,78.4494695 C46.6984278,78.4494695 49.3402543,78.1122393 51.8834898,77.5077704 L51.8834898,47.8028926 L28.2024618,64.564711 C27.9925575,64.7078746 27.7317672,64.7905915 27.4805181,64.7905915 C27.2854554,64.7905915 27.0861523,64.7492332 26.9069915,64.6463674 C26.4871828,64.432152 26.2263924,64.0016003 26.2263924,63.5402951 L26.2263924,24.246629 C26.2263924,23.7853237 26.4871827,23.3505302 26.9069915,23.1299521 C27.3268002,22.925281 27.8229378,22.9613371 28.2024618,23.2275155 L51.8834898,39.9903948 L51.8834898,22.9931515 L52.8916665,22.9931515 L62.3744669,22.9931515 L62.3744669,73.0834819 C71.9961439,66.9709219 78.4045878,56.2347051 78.4045878,44.0085243 C78.4045855,25.020783 62.9585849,9.57393941 43.9760316,9.57393941 L43.9760316,9.57393941" id="Shape"></path>
<path d="M43.9760316,0.0265208588 C19.7267767,0.0265208588 0.00212849594,19.7576617 0.00212849594,44.0095906 C0.00212849594,68.2625836 19.7267788,87.9926604 43.9760316,87.9926604 C68.2199849,87.9926604 87.9456969,68.2625815 87.9456969,44.0095906 C87.9446251,19.7576476 68.2199729,0.0265208588 43.9760316,0.0265208588 L43.9760316,0.0265208588 M62.3744625,73.0845482 L62.3744625,22.9942179 L52.8916624,22.9942179 L51.8834854,22.9942179 L51.8834854,39.9914611 L28.2024575,23.2285819 C27.8239936,22.9624034 27.3267959,22.9263474 26.9069872,23.1310185 C26.4871784,23.3515966 26.2263882,23.7863901 26.2263882,24.2476953 L26.2263882,63.5413616 C26.2263882,64.0026669 26.4871784,64.4332185 26.9069872,64.6474337 C27.086148,64.7502995 27.2854511,64.791658 27.4805137,64.791658 C27.7307028,64.791658 27.991493,64.7089412 28.2024575,64.5657775 L51.8834854,47.8039589 L51.8834854,77.5088367 C49.3402502,78.1122452 46.6984237,78.4505357 43.9760275,78.4505357 C24.9881644,78.4505357 9.54641018,62.9994606 9.54641018,44.0106489 C9.54641018,25.0218392 24.9871018,9.57500577 43.9760275,9.57500577 C62.9585908,9.57500577 78.4056447,25.0207783 78.4056447,44.0106489 C78.4045855,56.2357702 71.9961436,66.9719802 62.3744625,73.0845482 L60.7620121,11.6991258" id="Shape" fill="#E63E30"></path>
</g>
</g>
</g>
<path d="M61.068,63.2531211 L61.068,43.7411211 L68.052,43.7411211 L68.052,39.2411211 L48.9,39.2411211 L48.9,43.7411211 L55.92,43.7411211 L55.92,63.2531211 L61.068,63.2531211 L61.068,63.2531211 Z M81.876,63.6851211 C89.112,63.6851211 94.404,58.5011211 94.404,51.2651211 C94.404,44.0291211 89.112,38.8451211 81.876,38.8451211 C74.604,38.8451211 69.312,44.0291211 69.312,51.2651211 C69.312,58.5011211 74.604,63.6851211 81.876,63.6851211 C81.876,63.6851211 74.604,63.6851211 81.876,63.6851211 L81.876,63.6851211 Z M81.876,59.1491211 C77.412,59.1491211 74.568,55.7291211 74.568,51.2651211 C74.568,46.7651211 77.412,43.3811211 81.876,43.3811211 C86.304,43.3811211 89.148,46.7651211 89.148,51.2651211 C89.148,55.7291211 86.304,59.1491211 81.876,59.1491211 L81.876,59.1491211 Z M124.032,63.2531211 L124.032,39.2411211 L116.832,39.2411211 L111,54.2531211 L105.168,39.2411211 L98.004,39.2411211 L98.004,63.2531211 L103.116,63.2531211 L103.116,45.9371211 L109.884,63.2531211 L112.116,63.2531211 L118.884,45.9371211 L118.884,63.2531211 L124.032,63.2531211 L124.032,63.2531211 Z M151.176,63.2531211 L141.924,39.2411211 L135.516,39.2411211 L126.264,63.2531211 L132.06,63.2531211 L133.572,59.1851211 L143.868,59.1851211 L145.38,63.2531211 L151.176,63.2531211 L151.176,63.2531211 Z M142.464,54.6851211 L134.976,54.6851211 L138.72,44.3531211 L142.464,54.6851211 L142.464,54.6851211 Z M175.008,63.2531211 L175.008,39.2411211 L169.86,39.2411211 L169.86,48.6731211 L158.52,48.6731211 L158.52,39.2411211 L153.408,39.2411211 L153.408,63.2531211 L158.52,63.2531211 L158.52,53.1371211 L169.86,53.1371211 L169.86,63.2531211 L175.008,63.2531211 L175.008,63.2531211 Z M202.116,63.2531211 L192.864,39.2411211 L186.456,39.2411211 L177.204,63.2531211 L183,63.2531211 L184.512,59.1851211 L194.808,59.1851211 L196.32,63.2531211 L202.116,63.2531211 L202.116,63.2531211 Z M193.404,54.6851211 L185.916,54.6851211 L189.66,44.3531211 L193.404,54.6851211 L193.404,54.6851211 Z M226.56,63.2531211 L233.4,39.2411211 L227.676,39.2411211 L223.464,56.5931211 L218.928,39.2411211 L214.932,39.2411211 L210.36,56.5931211 L206.148,39.2411211 L200.424,39.2411211 L207.3,63.2531211 L212.736,63.2531211 L216.912,46.7651211 L221.124,63.2531211 L226.56,63.2531211 L226.56,63.2531211 Z M256.368,63.2531211 L246.18,50.5091211 L255.72,39.2411211 L249.42,39.2411211 L240.924,49.9331211 L240.924,39.2411211 L235.812,39.2411211 L235.812,63.2531211 L240.924,63.2531211 L240.924,55.8731211 L242.796,53.6051211 L250.068,63.2531211 L256.368,63.2531211 L256.368,63.2531211 Z" id="TOMAHAWK" fill="#262626"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

44
data/images/splash.svg Normal file
View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="304px" height="333px" viewBox="0 0 304 333" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>splash</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<radialGradient cx="50%" cy="38.2163462%" fx="50%" fy="38.2163462%" r="321.977806%" id="radialGradient-1">
<stop stop-color="#FEFFFE" offset="0%"></stop>
<stop stop-color="#000000" offset="100%"></stop>
</radialGradient>
<filter x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" id="filter-2">
<feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="2" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0" in="shadowBlurOuter1" type="matrix" result="shadowMatrixOuter1"></feColorMatrix>
<feMerge>
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
</feMerge>
</filter>
<filter x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" id="filter-3">
<feMorphology radius="5" in="SourceAlpha" operator="dilate" result="shadowSpreadInner1"></feMorphology>
<feOffset dx="0" dy="1" in="shadowSpreadInner1" result="shadowOffsetInner1"></feOffset>
<feGaussianBlur stdDeviation="1.5" in="shadowOffsetInner1" result="shadowBlurInner1"></feGaussianBlur>
<feComposite in="shadowBlurInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0" in="shadowInnerInner1" type="matrix" result="shadowMatrixInner1"></feColorMatrix>
<feMerge>
<feMergeNode in="SourceGraphic"></feMergeNode>
<feMergeNode in="shadowMatrixInner1"></feMergeNode>
</feMerge>
</filter>
</defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<rect d="M11.9938714,2 C7.57897813,2 4,5.58048287 4,9.99335196 L4,319.006648 C4,323.421254 7.58290025,327 11.9938714,327 L292.006129,327 C296.421022,327 300,323.419517 300,319.006648 L300,9.99335196 C300,5.57874557 296.4171,2 292.006129,2 L11.9938714,2 Z M11.9938714,2" id="Rectangle-4" fill="url(#radialGradient-1)" filter="url(#filter-2)" sketch:type="MSShapeGroup" x="4" y="2" width="296" height="325" rx="8"></rect>
<g id="tomahawk-icon" sketch:type="MSLayerGroup" transform="translate(108.523976, 83.845121)">
<g id="Page-1" sketch:type="MSShapeGroup">
<ellipse d="M43.976024,88.04 C68.2633126,88.04 87.952048,68.3512646 87.952048,44.063976 C87.952048,19.7766874 68.2633126,0.087952048 43.976024,0.087952048 C19.6887354,0.087952048 0,19.7766874 0,44.063976 C0,68.3512646 19.6887354,88.04 43.976024,88.04 Z M43.976024,88.04" id="Oval-1" stroke="#979797" fill="#FFFFFF" cx="43.976024" cy="44.063976" rx="43.976024" ry="43.976024"></ellipse>
<g id="Group">
<path d="M43.9760316,9.57393941 C24.9881687,9.57393941 9.54641449,25.019712 9.54641449,44.0095827 C9.54641449,62.9983923 24.9871061,78.4494695 43.9760316,78.4494695 C46.6984278,78.4494695 49.3402543,78.1122393 51.8834898,77.5077704 L51.8834898,47.8028926 L28.2024618,64.564711 C27.9925575,64.7078746 27.7317672,64.7905915 27.4805181,64.7905915 C27.2854554,64.7905915 27.0861523,64.7492332 26.9069915,64.6463674 C26.4871828,64.432152 26.2263924,64.0016003 26.2263924,63.5402951 L26.2263924,24.246629 C26.2263924,23.7853237 26.4871827,23.3505302 26.9069915,23.1299521 C27.3268002,22.925281 27.8229378,22.9613371 28.2024618,23.2275155 L51.8834898,39.9903948 L51.8834898,22.9931515 L52.8916665,22.9931515 L62.3744669,22.9931515 L62.3744669,73.0834819 C71.9961439,66.9709219 78.4045878,56.2347051 78.4045878,44.0085243 C78.4045855,25.020783 62.9585849,9.57393941 43.9760316,9.57393941 L43.9760316,9.57393941" id="Shape"></path>
<path d="M43.9760316,0.0265208588 C19.7267767,0.0265208588 0.00212849594,19.7576617 0.00212849594,44.0095906 C0.00212849594,68.2625836 19.7267788,87.9926604 43.9760316,87.9926604 C68.2199849,87.9926604 87.9456969,68.2625815 87.9456969,44.0095906 C87.9446251,19.7576476 68.2199729,0.0265208588 43.9760316,0.0265208588 L43.9760316,0.0265208588 M62.3744625,73.0845482 L62.3744625,22.9942179 L52.8916624,22.9942179 L51.8834854,22.9942179 L51.8834854,39.9914611 L28.2024575,23.2285819 C27.8239936,22.9624034 27.3267959,22.9263474 26.9069872,23.1310185 C26.4871784,23.3515966 26.2263882,23.7863901 26.2263882,24.2476953 L26.2263882,63.5413616 C26.2263882,64.0026669 26.4871784,64.4332185 26.9069872,64.6474337 C27.086148,64.7502995 27.2854511,64.791658 27.4805137,64.791658 C27.7307028,64.791658 27.991493,64.7089412 28.2024575,64.5657775 L51.8834854,47.8039589 L51.8834854,77.5088367 C49.3402502,78.1122452 46.6984237,78.4505357 43.9760275,78.4505357 C24.9881644,78.4505357 9.54641018,62.9994606 9.54641018,44.0106489 C9.54641018,25.0218392 24.9871018,9.57500577 43.9760275,9.57500577 C62.9585908,9.57500577 78.4056447,25.0207783 78.4056447,44.0106489 C78.4045855,56.2357702 71.9961436,66.9719802 62.3744625,73.0845482 L60.7620121,11.6991258" id="Shape" fill="#E63E30"></path>
</g>
</g>
</g>
<path d="M61.068,63.2531211 L61.068,43.7411211 L68.052,43.7411211 L68.052,39.2411211 L48.9,39.2411211 L48.9,43.7411211 L55.92,43.7411211 L55.92,63.2531211 L61.068,63.2531211 Z M81.876,63.6851211 C89.112,63.6851211 94.404,58.5011211 94.404,51.2651211 C94.404,44.0291211 89.112,38.8451211 81.876,38.8451211 C74.604,38.8451211 69.312,44.0291211 69.312,51.2651211 C69.312,58.5011211 74.604,63.6851211 81.876,63.6851211 C81.876,63.6851211 74.604,63.6851211 81.876,63.6851211 Z M81.876,59.1491211 C77.412,59.1491211 74.568,55.7291211 74.568,51.2651211 C74.568,46.7651211 77.412,43.3811211 81.876,43.3811211 C86.304,43.3811211 89.148,46.7651211 89.148,51.2651211 C89.148,55.7291211 86.304,59.1491211 81.876,59.1491211 Z M124.032,63.2531211 L124.032,39.2411211 L116.832,39.2411211 L111,54.2531211 L105.168,39.2411211 L98.004,39.2411211 L98.004,63.2531211 L103.116,63.2531211 L103.116,45.9371211 L109.884,63.2531211 L112.116,63.2531211 L118.884,45.9371211 L118.884,63.2531211 L124.032,63.2531211 Z M151.176,63.2531211 L141.924,39.2411211 L135.516,39.2411211 L126.264,63.2531211 L132.06,63.2531211 L133.572,59.1851211 L143.868,59.1851211 L145.38,63.2531211 L151.176,63.2531211 Z M142.464,54.6851211 L134.976,54.6851211 L138.72,44.3531211 L142.464,54.6851211 Z M175.008,63.2531211 L175.008,39.2411211 L169.86,39.2411211 L169.86,48.6731211 L158.52,48.6731211 L158.52,39.2411211 L153.408,39.2411211 L153.408,63.2531211 L158.52,63.2531211 L158.52,53.1371211 L169.86,53.1371211 L169.86,63.2531211 L175.008,63.2531211 Z M202.116,63.2531211 L192.864,39.2411211 L186.456,39.2411211 L177.204,63.2531211 L183,63.2531211 L184.512,59.1851211 L194.808,59.1851211 L196.32,63.2531211 L202.116,63.2531211 Z M193.404,54.6851211 L185.916,54.6851211 L189.66,44.3531211 L193.404,54.6851211 Z M226.56,63.2531211 L233.4,39.2411211 L227.676,39.2411211 L223.464,56.5931211 L218.928,39.2411211 L214.932,39.2411211 L210.36,56.5931211 L206.148,39.2411211 L200.424,39.2411211 L207.3,63.2531211 L212.736,63.2531211 L216.912,46.7651211 L221.124,63.2531211 L226.56,63.2531211 Z M256.368,63.2531211 L246.18,50.5091211 L255.72,39.2411211 L249.42,39.2411211 L240.924,49.9331211 L240.924,39.2411211 L235.812,39.2411211 L235.812,63.2531211 L240.924,63.2531211 L240.924,55.8731211 L242.796,53.6051211 L250.068,63.2531211 L256.368,63.2531211 Z M256.368,63.2531211" id="TOMAHAWK" fill="#262626" filter="url(#filter-3)" sketch:type="MSShapeGroup"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 373 KiB

View File

@@ -1,43 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="47px" height="47px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>spotify-logo</title>
<svg width="1000px" height="1000px" viewBox="0 0 1000 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<linearGradient x1="62.2222222%" y1="-109.879447%" x2="62.2222222%" y2="100.079007%" id="linearGradient-1">
<stop stop-color="rgb(211,224,107)" offset="0%"></stop>
<stop stop-color="rgb(133,163,46)" offset="100%"></stop>
</linearGradient>
<linearGradient x1="132.472281%" y1="113.795168%" x2="-9.02630224%" y2="19.3853017%" id="linearGradient-2">
<stop stop-color="rgb(107,126,50)" offset="0%"></stop>
<stop stop-color="rgb(60,73,24)" offset="100%"></stop>
</linearGradient>
<linearGradient x1="114.177516%" y1="87.9933558%" x2="2.46797803%" y2="25.4018941%" id="linearGradient-3">
<stop stop-color="rgb(107,126,50)" offset="0%"></stop>
<stop stop-color="rgb(60,73,24)" offset="100%"></stop>
</linearGradient>
<linearGradient x1="149.680203%" y1="114.783395%" x2="-1.23068876%" y2="20.5175511%" id="linearGradient-4">
<stop stop-color="rgb(107,126,50)" offset="0%"></stop>
<stop stop-color="rgb(60,73,24)" offset="100%"></stop>
</linearGradient>
<linearGradient x1="65.1692878%" y1="-1.15412394%" x2="65.1692878%" y2="100.967712%" id="linearGradient-5">
<stop stop-color="rgb(254,255,254)" offset="0%"></stop>
<stop stop-color="rgb(254,255,254)" stop-opacity="0" offset="100%"></stop>
</linearGradient>
<radialGradient cx="47.4050141%" cy="100.000123%" fx="47.4050141%" fy="100.000123%" r="50%" id="radialGradient-6">
<stop stop-color="rgb(107,126,50)" offset="0%"></stop>
<stop stop-color="rgb(60,73,24)" offset="100%"></stop>
<radialGradient cx="50.8262172%" cy="19.7598471%" fx="50.8262172%" fy="19.7598471%" r="50%" id="radialGradient-1">
<stop stop-color="#A9D03F" offset="0%"></stop>
<stop stop-color="#A9D03F" offset="7.105015%"></stop>
<stop stop-color="#A1CC3E" offset="24.677444%"></stop>
<stop stop-color="#94C93D" offset="45.569649%"></stop>
<stop stop-color="#8DC540" offset="59.65941%"></stop>
<stop stop-color="#84BC41" offset="79.657596%"></stop>
<stop stop-color="#79B641" offset="100%"></stop>
</radialGradient>
</defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<g id="svg2" fill="rgb(0,0,0)">
<g id="layer1">
<path d="M46,23.4999996 C46,35.9264065 35.9264069,45.9999996 23.5,45.9999996 C11.0735931,45.9999996 1,35.9264065 1,23.4999996 C1,11.0735927 11.0735931,0.999999617 23.5,0.999999617 C35.9264069,0.999999617 46,11.0735927 46,23.4999996 C46,23.4999996 46,11.0735927 46,23.4999996 L46,23.4999996" id="path5513" fill="url(#linearGradient-1)"></path>
<path d="M10.3002453,11.6195555 C8.24102688,12.012805 7.94257736,15.3554049 10.7654648,15.3130732 C21.9770622,13.2014904 31.0487232,15.4988899 39.6700478,19.8260403 C40.8082466,20.3789711 42.6476097,18.0287037 41.0204697,16.7585106 C31.3168354,11.6140623 19.9609756,9.87804699 10.3002453,11.6195555 C10.3002453,11.6195555 19.9609756,9.87804699 10.3002453,11.6195555 L10.3002453,11.6195555" id="path7661" fill="url(#linearGradient-2)"></path>
<path d="M12.3035316,19.1448269 C10.172718,19.3810368 9.82939053,22.9693108 12.5619602,22.6482792 C21.9036541,21.5098209 27.8536301,22.6287899 35.6833229,25.8085918 C37.6471901,26.8732643 38.7249985,23.4825859 36.9293365,22.6049614 C28.1335659,18.8897991 21.4121304,18.7261505 12.3035316,19.1448269 C12.3035316,19.1448269 21.4121304,18.7261505 12.3035316,19.1448269 L12.3035316,19.1448269" id="path7666" opacity="0.8" fill="url(#linearGradient-3)"></path>
<path d="M14.4476528,25.7030106 C12.7541599,26.3083305 13.0538054,29.1486492 14.8631124,29.0521393 C17.8708324,28.7223721 20.1539478,28.7061386 23.6155319,29.0975533 C27.1264324,29.494545 29.2332573,30.4359741 32.1573563,31.4530487 C33.3504066,31.9618759 34.4471741,29.7644825 33.1875381,28.5280266 C29.9664268,27.2747231 27.415802,26.1748791 23.3885059,25.7194977 C20.0840149,25.3480473 17.7555847,25.3715115 14.4476528,25.7030106 C14.4476528,25.7030106 17.7555847,25.3715115 14.4476528,25.7030106 L14.4476528,25.7030106" id="path7668" opacity="0.6" fill="url(#linearGradient-4)"></path>
<path d="M23.4999995,44.9999992 C11.6258773,44.9999992 1.9999994,35.3741214 1.9999994,23.4999993 C1.9999994,11.6258773 11.6258773,1.99999946 23.4999995,1.99999946 C35.3741217,1.99999946 44.9999996,11.6258773 44.9999996,23.4999993 C44.9999996,35.3741214 35.3741217,44.9999992 23.4999995,44.9999992 Z M23.4999995,44.9999992" id="path3894" stroke="rgb(0,0,0)" stroke-width="0.955555555" opacity="0.2"></path>
<path d="M7.34768963,38.6745071 C7.87801963,38.6745071 11.00822,31.347157 22.94065,32.7613673 C34.8730803,34.1755773 36.25068,42.033257 36.25068,42.033257 C34.2001801,43.433877 32.01899,44.6602271 29.2680001,45.126857 C29.2680001,45.126857 26.2690802,39.5798371 20.8773904,39.933387 C15.4857006,40.286937 13.6232605,43.4474771 13.6232605,43.4474771 C10.8516705,42.4523971 8.70550013,40.8477371 7.34769011,38.6745069 C7.34769011,38.6745069 8.70550013,40.8477371 7.34769011,38.6745069 L7.34768963,38.6745071" id="path5529" fill="url(#radialGradient-6)"></path>
<path d="M23.4999995,45.9999993 C11.0735926,46.0000012 0.9999995,35.9264062 0.9999995,23.4999993 C0.99999895,11.0735925 11.0735926,0.999999335 23.4999995,0.999999335 C35.9264064,0.999999335 45.9999995,11.0735925 45.9999995,23.4999993 C45.9999995,35.9264062 35.9264064,45.9999993 23.4999995,45.9999993 Z M23.4999995,45.9999993" id="path3892" stroke="rgb(117,143,56)" stroke-width="1"></path>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="svg2" sketch:type="MSLayerGroup" transform="translate(-3578.000000, -1.000000)">
<g id="layer1" transform="translate(0.205880, 0.260670)" sketch:type="MSShapeGroup">
<g id="g3128" transform="translate(3577.939315, 0.777349)">
<g id="g3099" transform="translate(0.354801, 0.209030)">
<path d="M193.437643,632.659533 L195.123066,649.176693 L207.876102,655.075649 C208.61026,635.537611 220.760227,623.670557 236.809201,620.805363 C287.667189,609.746278 350.224972,599.175766 423.104651,599.175766 C537.69697,599.175766 636.546844,627.589457 716.536846,676.368177 C728.346469,683.54526 732.213989,692.48324 733.896707,704.34618 L778.335699,675.581658 L767.09954,631.311187 L435.408243,542.320795 L125.290361,581.872088 L193.437643,632.659533 Z M193.437643,632.659533" id="path3103" stroke="#008080" stroke-width="0.60321335" fill="#7A9F3F"></path>
<path d="M172.482213,509.286544 L187.538661,503.607354 C188.063083,484.734552 198.241386,469.043304 220.011149,463.105899 C276.33546,446.55852 342.484544,436.195362 414.733719,436.195362 C553.337209,436.195362 680.365755,472.505672 773.168293,528.463296 C788.018896,537.582595 793.722856,544.317514 796.523759,568.200359 L864.776004,530.687943 L578.11458,396.57358 L98.8624405,424.540587 L172.482213,509.286544 Z M172.482213,509.286544" id="path3105" stroke="#000080" stroke-width="0.60321335" fill="#82A73E"></path>
<path d="M153.605473,350.070232 C152.076157,321.873002 166.872726,301.582443 188.549915,295.350126 C259.810578,274.652277 336.233219,264.506862 426.53168,264.506862 C576.724736,264.506862 727.614818,295.943186 838.000808,359.708052 C859.696193,371.514802 865.964969,387.375427 867.14592,411.606877 L935.646849,366.381993 L730.026064,192.541832 L100.769276,259.916791 L153.605473,350.070232 Z M153.605473,350.070232" id="path3107" stroke="#000000" stroke-width="0.60321335" fill="#81A83E"></path>
<path d="M499.499987,0.252954078 C223.636558,0.252954078 0,223.868339 0,499.731895 C0,775.595316 223.636558,999.231882 499.499987,999.231882 C775.363415,999.231882 998.999974,775.595316 998.999974,499.731895 C998.999974,223.868339 775.363415,0.252954078 499.499987,0.252954078 L499.499987,0.252954078 Z M426.206543,260.943245 C572.876178,260.943245 727.193376,291.113719 839.912938,357.318749 C855.106318,365.924044 865.651016,378.898295 865.651016,402.681847 C865.651016,429.910701 843.765436,449.478352 818.538319,449.478352 C808.368472,449.478352 802.334438,447.003989 792.800241,441.784298 C702.388396,387.571922 562.085689,357.719226 426.396258,357.719226 C358.663817,357.719226 289.87104,364.607334 226.857649,381.707704 C219.600156,383.534168 210.428242,387.16733 201.246049,387.16733 C174.600109,387.16733 154.154431,366.087014 154.154431,339.443328 C154.154431,312.298387 170.977823,297.060501 189.125333,291.698212 C260.328459,270.721438 339.807595,260.943245 426.206543,260.943245 L426.206543,260.943245 Z M416.025141,432.57252 C546.769259,432.57252 673.250636,465.135467 772.690392,524.647805 C789.361104,534.207108 795.498418,546.34634 795.498418,564.129754 C795.498418,585.758205 778.279496,603.232205 756.564569,603.232205 C745.726425,603.232205 738.908806,598.852727 731.543195,594.568562 C650.290675,546.350185 537.6778,514.318914 414.35986,514.318914 C351.11133,514.318914 296.518727,523.175342 251.330956,535.208671 C241.595233,537.888096 236.137204,540.773661 227.026285,540.773661 C205.543773,540.773661 188.008119,523.267822 188.008119,501.607938 C188.008119,480.36762 198.309807,465.742557 219.079311,459.89156 C275.228953,444.470603 332.567773,432.57252 416.025141,432.57252 L416.025141,432.57252 Z M422.875981,595.685809 C532.179064,595.685809 629.593366,620.760574 713.414819,671.002852 C725.890454,678.286513 733.208476,685.729501 733.208476,704.203109 C733.208476,722.209932 718.564432,735.44287 702.137283,735.44287 C694.05938,735.44287 688.548347,732.640611 680.994538,728.043997 C608.602224,684.246044 518.339022,661.221961 422.538709,661.221961 C369.09223,661.221961 315.300392,668.07641 264.990477,678.549316 C256.809701,680.322827 246.514832,683.48192 240.369613,683.48192 C221.400881,683.48192 208.750353,668.414491 208.750353,652.094569 C208.750353,631.105451 220.860397,620.6544 235.921837,617.777132 C297.616561,603.71727 359.058918,595.685809 422.875981,595.685809 L422.875981,595.685809 Z M422.875981,595.685809" id="path3101" fill="url(#radialGradient-1)"></path>
</g>
</g>
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 373 KiB

View File

@@ -1,92 +1,30 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="194.88251"
height="194.88251"
id="svg3252"
xml:space="preserve"><metadata
id="metadata3258"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs3256"><clipPath
id="clipPath3266"><path
d="m 0,155.906 155.906,0 L 155.906,0 0,0 0,155.906 z"
id="path3268" /></clipPath></defs><g
transform="matrix(1.25,0,0,-1.25,0,194.8825)"
id="g3260"><g
id="g3262"><g
clip-path="url(#clipPath3266)"
id="g3264"><g
transform="translate(0,3.7119)"
id="g3270"><path
d="m 0,0 c 0,-2.051 1.661,-3.712 3.711,-3.712 l 148.482,0 c 2.051,0 3.712,1.661 3.712,3.712 l 0,148.481 c 0,2.051 -1.661,3.712 -3.712,3.712 l -148.482,0 C 1.661,152.193 0,150.532 0,148.481 L 0,0 z"
id="path3272"
style="fill:#84b82d;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><path
d="m 104.527,43.722 -1.413,0 0,-8.581 1.413,0 0,8.581 z m -9.569,0 -3.632,0 0,-8.581 3.632,0 0,8.581 z m 26.71,0.309 c 0.384,-1.071 0.562,-1.567 1.121,-3.13 0.482,1.522 0.636,2.005 0.966,3.05 -0.546,0.282 -0.938,0.774 -1.104,1.377 -0.151,-0.556 -0.502,-1.007 -0.983,-1.297 M 73.945,40.634 c 0.77,0.721 1.244,2.129 1.3,3.861 0.062,1.88 -0.288,3.327 -0.986,4.07 -0.251,0.27 -0.697,0.627 -1.662,0.661 -2.568,0.083 -2.885,-3.516 -2.919,-4.622 -0.057,-1.69 0.327,-3.098 1.048,-3.87 0.411,-0.438 0.924,-0.661 1.572,-0.681 0.669,-0.023 1.206,0.168 1.647,0.581 M 54.063,34.827 c 1.646,0 2.482,1.549 2.482,4.605 0,1.377 -0.229,4.573 -2.343,4.573 -0.725,0 -1.34,-0.323 -1.824,-0.963 -0.607,-0.804 -0.94,-2.011 -0.94,-3.397 0,-2.33 0.688,-4.818 2.625,-4.818 m -10.977,8.859 -2.489,0 c 1.007,-0.572 1.829,-1.273 2.489,-2.048 0.004,2.343 0,0.773 0,2.048 m -8.9,-10.275 c 1.034,0 2.768,0.238 2.768,1.846 0,0.947 -0.584,1.431 -4.082,1.786 -1.598,0.158 -3.003,0.313 -4.398,0.768 0.233,-0.174 0.466,-0.35 0.616,-0.608 l 0.071,-0.117 c 1.19,-2.011 2.387,-3.675 5.025,-3.675 m 2.494,11.677 c -0.425,0.926 -0.593,1.133 -0.901,1.462 -0.889,0.912 -2.008,1.416 -3.149,1.416 -1.627,0 -2.626,-0.747 -2.626,-1.282 0,-0.214 0.231,-0.364 0.444,-0.458 0.62,-0.288 1.275,-0.464 3.311,-0.694 1.22,-0.137 2.106,-0.269 2.921,-0.444 m 104.654,3.791 0,-2.929 c 0,-1.227 -0.995,-2.264 -2.222,-2.264 l -7.338,0 c -0.859,-2.594 -6.047,-18.247 -6.047,-18.247 -1.262,-3.657 -4.042,-4.15 -6.594,-4.15 l -2.69,0 c -1.226,0 -2.22,0.995 -2.22,2.222 l 0,3.115 c 0,0.59 0.299,1.153 0.717,1.569 0.418,0.417 1.051,0.649 1.641,0.647 l 1.227,-0.002 0.547,0.007 c 0.161,0 0.249,0.006 0.334,0.011 0.048,0.116 0.112,0.286 0.194,0.541 0.005,0.015 0.024,0.087 0.036,0.13 -0.43,1.136 -4.494,11.878 -5.355,14.157 l -0.877,0 0,-8.541 0.147,0 c 1.228,0 2.222,-0.998 2.222,-2.222 l 0,-3.008 c 0,-1.227 -0.994,-2.222 -2.222,-2.222 l -22.032,0 c -4.758,0 -7.598,2.611 -7.598,7.103 l 0,6.342 0,0.002 c -0.581,-2.292 -1.709,-4.281 -3.298,-5.77 -2.108,-1.975 -4.848,-2.967 -7.924,-2.867 -2.969,0.094 -5.497,1.222 -7.35,3.101 l 0.002,0 c -1.195,-4.994 -4.801,-8.334 -9.44,-8.334 -0.561,0 -1.083,0.04 -1.57,0.115 0.048,-0.18 0.111,-0.353 0.111,-0.547 l 0,-3.008 c 0,-1.226 -0.995,-2.222 -2.222,-2.222 l -8.243,0 c -1.228,0 -2.221,0.996 -2.221,2.222 l 0,3.386 C 39.366,26.059 37.309,25.394 35,25.394 c -2.422,0 -4.249,0.657 -5.719,1.58 -0.135,-0.484 -0.385,-1.031 -0.845,-1.521 -0.489,-0.519 -1.373,-1.138 -2.81,-1.138 -1.434,0 -2.318,0.617 -2.806,1.134 -1.045,1.108 -1.023,2.516 -1.007,2.786 -0.002,-0.043 -0.003,-0.084 -0.003,-0.127 l 0,7.961 c 0,1.228 0.996,2.221 2.222,2.221 l 3.149,0 c 0.004,0 0.007,-0.002 0.01,-0.002 -0.905,0.396 -1.96,0.973 -2.757,1.847 -1.623,1.719 -2.517,3.958 -2.517,6.303 0,2.615 1.08,5.01 3.044,6.747 1.889,1.668 4.462,2.586 7.244,2.586 2.012,0 3.609,-0.526 4.891,-1.217 0.406,0.437 0.973,0.719 1.619,0.719 l 3.148,0 c 1.227,0 2.221,-0.993 2.221,-2.22 l 0,-1.918 5.164,0 c 0.606,0 1.151,-0.245 1.553,-0.638 1.166,0.631 2.596,1.065 4.428,1.065 2.639,0 4.914,-1.048 6.609,-2.87 l 0,-10e-4 c 1.469,5.004 5.679,8.259 10.967,8.087 4.246,-0.136 7.58,-2.242 9.38,-5.643 l 1.019,0 0,3.334 c 0,1.226 0.994,2.221 2.222,2.221 l 3.678,0 c 1.228,0 2.222,-0.995 2.222,-2.221 l 0,-3.334 3.632,0 0,3.334 c 0,1.226 0.994,2.221 2.222,2.221 l 3.713,0 c 1.228,0 2.221,-0.995 2.221,-2.221 l 0,-3.334 1.413,0 0,1.885 c 0,2.469 1.136,3.81 2.089,4.498 1.191,0.859 2.785,1.259 5.015,1.259 l 2.723,0 c 1.228,0 2.223,-0.994 2.223,-2.22 l 0,-2.937 c 0,-1.227 -0.995,-2.222 -2.223,-2.222 l -1.667,0 0,-0.263 7.86,0 c 1.021,0 1.846,-0.703 2.104,-1.642 0.261,0.939 1.084,1.642 2.105,1.642 l 14.356,0 c 1.227,0 2.222,-1.029 2.222,-2.256"
id="path3274"
style="fill:#5e9536;fill-opacity:1;fill-rule:nonzero;stroke:none" /><g
transform="translate(27.1812,36.0693)"
id="g3276"><path
d="m 0,0 c 1.027,-1.732 2.794,-4.881 7.005,-4.881 3.042,0 4.99,1.59 4.99,4.068 0,3.398 -3.645,3.751 -6.087,3.998 -1.803,0.177 -3.114,0.317 -4.387,0.814 -0.743,0.282 -1.912,0.777 -2.654,1.592 -1.203,1.273 -1.91,2.972 -1.91,4.777 0,4.069 3.433,7.111 8.067,7.111 3.29,0 5.201,-1.769 6.51,-2.972 l 0,2.476 3.148,0 0,-7.147 -3.113,0 c -0.532,1.167 -0.815,1.593 -1.38,2.196 -1.309,1.342 -3.006,2.086 -4.74,2.086 -2.761,0 -4.847,-1.522 -4.847,-3.504 0,-1.061 0.635,-1.979 1.732,-2.474 0.921,-0.426 1.805,-0.638 3.999,-0.887 2.229,-0.248 3.184,-0.459 4.564,-0.92 3.997,-1.38 5.023,-4.812 5.023,-6.934 0,-4.528 -3.431,-7.853 -8.101,-7.853 -3.963,0 -5.874,2.121 -7.785,4.175 l 0,-3.682 c 0,0 0.094,-1.572 -1.589,-1.572 -1.682,0 -1.594,1.572 -1.594,1.572 L -3.149,0 0,0 z"
id="path3278"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
transform="translate(54.0635,32.6055)"
id="g3280"><path
d="m 0,0 c 3.006,0 4.702,2.441 4.702,6.826 0,4.246 -1.696,6.794 -4.564,6.794 -2.935,0 -4.988,-2.723 -4.988,-6.581 C -4.85,2.722 -2.938,0 0,0 m -4.815,13.584 c 1.487,1.946 3.113,3.149 5.981,3.149 4.493,0 7.607,-4.104 7.607,-10.013 0,-5.696 -3.221,-9.834 -7.642,-9.834 -3.397,0 -4.883,1.839 -5.946,3.148 l 0,-5.802 2.265,0 0,-3.007 -8.244,0 0,3.007 2.264,0 0,19.068 -2.264,0 0,3.008 5.979,0 0,-2.724 z"
id="path3282"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
transform="translate(77.4663,44.4209)"
id="g3284"><path
d="M 0,0 C 0.14,4.351 -1.58,6.922 -4.799,7.025 -7.875,7.124 -9.872,4.5 -10.01,0.256 -10.142,-3.775 -8.282,-6.49 -5.241,-6.59 -2.165,-6.688 -0.133,-4.137 0,0 m -13.962,0.667 c 0.186,5.693 4.031,9.64 9.229,9.472 5.375,-0.175 8.888,-4.254 8.696,-10.125 -0.192,-5.943 -4,-9.887 -9.375,-9.712 -5.269,0.171 -8.744,4.388 -8.55,10.365"
id="path3286"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
transform="translate(85.4258,54.4688)"
id="g3288"><path
d="m 0,0 3.679,0 0,-5.556 4.246,0 0,-3.007 -4.246,0 0,-10.93 c 0,-2.411 1.92,-2.053 4.246,-2.053 l 0,-3.078 -2.549,0 c -3.21,0 -5.376,1.359 -5.376,4.951 l 0,11.11 -2.433,0 c 0,0 -0.054,0.777 -0.157,1.47 -0.101,0.695 -0.333,1.537 -0.333,1.537 L 0,-5.556 0,0 z"
id="path3290"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
transform="translate(94.9492,48.9131)"
id="g3292"><path
d="m 0,0 5.943,0 0,-15.99 2.124,0 0,-3.008 -8.101,0 0,3.008 2.264,0 0,13.018 -2.23,0 L 0,0 z"
id="path3294"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><path
d="m 97.18,54.469 3.713,0 0,-3.325 -3.713,0 0,3.325 z"
id="path3296"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /><g
transform="translate(110.4639,45.9053)"
id="g3298"><path
d="m 0,0 0,-12.982 2.37,0 0,-3.008 -8.278,0 0,3.008 2.192,0 0,12.982 -2.972,0 0,3.008 2.972,0 0,4.106 c 0,2.476 1.487,3.537 4.883,3.537 l 2.724,0 0,-2.936 -2.157,0 C 0.426,7.715 0,7.29 0,6.087 l 0,-3.079 10.083,0 L 10.083,0 8.172,0 12.455,-11.956 16.24,0 l -1.948,0 0,3.008 7.184,0 0,-3.008 -1.769,0 -6.546,-19.74 c -0.706,-2.053 -1.875,-2.655 -4.492,-2.655 l -2.69,0 0,3.116 c 0.566,-0.036 1.451,0 1.913,0 1.662,0 2.086,0.352 2.652,2.122 l 0.247,0.884 L 4.635,0 0,0 z"
id="path3300"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
transform="translate(133.2666,48.8789)"
id="g3302"><path
d="m 0,0 2.194,0 0,-1.11 -0.37,0 0,0.726 -0.493,0 0,-2.162 0.331,0 0,-0.383 -1.135,0 0,0.383 0.338,0 0,2.162 -0.495,0 0,-0.713 -0.37,0 L 0,0 z"
id="path3304"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
transform="translate(135.7598,48.8789)"
id="g3306"><path
d="M 0,0 1.014,0 1.678,-2.214 2.352,0 l 1.001,0 0,-0.384 -0.295,0 0,-2.162 0.295,0 0,-0.383 -0.724,0 0,2.624 -0.788,-2.624 -0.312,0 -0.797,2.617 0,-2.617 -0.732,0 0,0.383 0.303,0 0,2.162 L 0,-0.384 0,0 z"
id="path3308"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
transform="translate(79.1582,58.2109)"
id="g3310"><path
d="m 0,0 c -2.762,1.688 -6.185,2.082 -10.174,1.169 -0.352,-0.08 -0.571,-0.43 -0.491,-0.781 0.079,-0.352 0.431,-0.571 0.782,-0.492 3.646,0.833 6.742,0.494 9.202,-1.009 0.306,-0.188 0.71,-0.091 0.899,0.217 C 0.404,-0.587 0.309,-0.186 0,0"
id="path3312"
style="fill:#5e9536;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
transform="translate(80.3877,61.29)"
id="g3314"><path
d="m 0,0 c -3.233,1.986 -7.963,2.547 -11.768,1.392 -0.431,-0.13 -0.675,-0.586 -0.544,-1.018 0.132,-0.432 0.588,-0.676 1.02,-0.544 3.329,1.01 7.623,0.51 10.438,-1.223 0.383,-0.234 0.886,-0.114 1.124,0.27 C 0.504,-0.739 0.384,-0.237 0,0"
id="path3316"
style="fill:#538434;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g><g
transform="translate(81.7666,64.8672)"
id="g3318"><path
d="m 0,0 c -3.885,2.307 -10.037,2.524 -13.738,1.399 -0.518,-0.157 -0.81,-0.704 -0.652,-1.221 0.156,-0.518 0.702,-0.811 1.222,-0.654 3.221,0.98 8.792,0.794 12.169,-1.211 0.464,-0.276 1.065,-0.124 1.341,0.342 C 0.618,-0.878 0.466,-0.278 0,0"
id="path3320"
style="fill:#467232;fill-opacity:1;fill-rule:nonzero;stroke:none" /></g></g></g></g></svg>
<svg width="1000px" height="1000px" viewBox="0 0 1000 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<radialGradient cx="50.8262172%" cy="19.7598471%" fx="50.8262172%" fy="19.7598471%" r="50%" id="radialGradient-1">
<stop stop-color="#A9D03F" offset="0%"></stop>
<stop stop-color="#A9D03F" offset="7.105015%"></stop>
<stop stop-color="#A1CC3E" offset="24.677444%"></stop>
<stop stop-color="#94C93D" offset="45.569649%"></stop>
<stop stop-color="#8DC540" offset="59.65941%"></stop>
<stop stop-color="#84BC41" offset="79.657596%"></stop>
<stop stop-color="#79B641" offset="100%"></stop>
</radialGradient>
</defs>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="svg2" sketch:type="MSLayerGroup" transform="translate(-3578.000000, -1.000000)">
<g id="layer1" transform="translate(0.205880, 0.260670)" sketch:type="MSShapeGroup">
<g id="g3128" transform="translate(3577.939315, 0.777349)">
<g id="g3099" transform="translate(0.354801, 0.209030)">
<path d="M193.437643,632.659533 L195.123066,649.176693 L207.876102,655.075649 C208.61026,635.537611 220.760227,623.670557 236.809201,620.805363 C287.667189,609.746278 350.224972,599.175766 423.104651,599.175766 C537.69697,599.175766 636.546844,627.589457 716.536846,676.368177 C728.346469,683.54526 732.213989,692.48324 733.896707,704.34618 L778.335699,675.581658 L767.09954,631.311187 L435.408243,542.320795 L125.290361,581.872088 L193.437643,632.659533 Z M193.437643,632.659533" id="path3103" stroke="#008080" stroke-width="0.60321335" fill="#7A9F3F"></path>
<path d="M172.482213,509.286544 L187.538661,503.607354 C188.063083,484.734552 198.241386,469.043304 220.011149,463.105899 C276.33546,446.55852 342.484544,436.195362 414.733719,436.195362 C553.337209,436.195362 680.365755,472.505672 773.168293,528.463296 C788.018896,537.582595 793.722856,544.317514 796.523759,568.200359 L864.776004,530.687943 L578.11458,396.57358 L98.8624405,424.540587 L172.482213,509.286544 Z M172.482213,509.286544" id="path3105" stroke="#000080" stroke-width="0.60321335" fill="#82A73E"></path>
<path d="M153.605473,350.070232 C152.076157,321.873002 166.872726,301.582443 188.549915,295.350126 C259.810578,274.652277 336.233219,264.506862 426.53168,264.506862 C576.724736,264.506862 727.614818,295.943186 838.000808,359.708052 C859.696193,371.514802 865.964969,387.375427 867.14592,411.606877 L935.646849,366.381993 L730.026064,192.541832 L100.769276,259.916791 L153.605473,350.070232 Z M153.605473,350.070232" id="path3107" stroke="#000000" stroke-width="0.60321335" fill="#81A83E"></path>
<path d="M499.499987,0.252954078 C223.636558,0.252954078 0,223.868339 0,499.731895 C0,775.595316 223.636558,999.231882 499.499987,999.231882 C775.363415,999.231882 998.999974,775.595316 998.999974,499.731895 C998.999974,223.868339 775.363415,0.252954078 499.499987,0.252954078 L499.499987,0.252954078 Z M426.206543,260.943245 C572.876178,260.943245 727.193376,291.113719 839.912938,357.318749 C855.106318,365.924044 865.651016,378.898295 865.651016,402.681847 C865.651016,429.910701 843.765436,449.478352 818.538319,449.478352 C808.368472,449.478352 802.334438,447.003989 792.800241,441.784298 C702.388396,387.571922 562.085689,357.719226 426.396258,357.719226 C358.663817,357.719226 289.87104,364.607334 226.857649,381.707704 C219.600156,383.534168 210.428242,387.16733 201.246049,387.16733 C174.600109,387.16733 154.154431,366.087014 154.154431,339.443328 C154.154431,312.298387 170.977823,297.060501 189.125333,291.698212 C260.328459,270.721438 339.807595,260.943245 426.206543,260.943245 L426.206543,260.943245 Z M416.025141,432.57252 C546.769259,432.57252 673.250636,465.135467 772.690392,524.647805 C789.361104,534.207108 795.498418,546.34634 795.498418,564.129754 C795.498418,585.758205 778.279496,603.232205 756.564569,603.232205 C745.726425,603.232205 738.908806,598.852727 731.543195,594.568562 C650.290675,546.350185 537.6778,514.318914 414.35986,514.318914 C351.11133,514.318914 296.518727,523.175342 251.330956,535.208671 C241.595233,537.888096 236.137204,540.773661 227.026285,540.773661 C205.543773,540.773661 188.008119,523.267822 188.008119,501.607938 C188.008119,480.36762 198.309807,465.742557 219.079311,459.89156 C275.228953,444.470603 332.567773,432.57252 416.025141,432.57252 L416.025141,432.57252 Z M422.875981,595.685809 C532.179064,595.685809 629.593366,620.760574 713.414819,671.002852 C725.890454,678.286513 733.208476,685.729501 733.208476,704.203109 C733.208476,722.209932 718.564432,735.44287 702.137283,735.44287 C694.05938,735.44287 688.548347,732.640611 680.994538,728.043997 C608.602224,684.246044 518.339022,661.221961 422.538709,661.221961 C369.09223,661.221961 315.300392,668.07641 264.990477,678.549316 C256.809701,680.322827 246.514832,683.48192 240.369613,683.48192 C221.400881,683.48192 208.750353,668.414491 208.750353,652.094569 C208.750353,631.105451 220.860397,620.6544 235.921837,617.777132 C297.616561,603.71727 359.058918,595.685809 422.875981,595.685809 L422.875981,595.685809 Z M422.875981,595.685809" id="path3101" fill="url(#radialGradient-1)"></path>
</g>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -1,9 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="80px" height="80px" viewBox="0 0 80 80" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<svg width="150px" height="150px" viewBox="0 0 150 150" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>track-placeholder-grid</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<path d="M0,0 L80,0 L80,80 L0,80 Z M16.875,15.9537457 C15.7162501,17.6713457 15.575625,19.9684456 16.485,22.2560456 C17.29875,24.300446 18.87375,26.2080454 20.9343749,27.6330454 C23.0231251,29.0789457 25.3874999,29.8769459 27.5925002,29.8769459 C28.0031249,29.8769459 28.3912504,29.8389459 28.7737504,29.7857461 C28.7681249,33.8346462 28.7606254,37.8778449 28.7493749,41.911547 C28.7381249,46.8477471 28.7287499,51.7725466 28.7287499,56.6897468 C28.7287499,57.5618467 29.2893749,58.3332468 30.1124999,58.5897468 L57.8568758,67.2727463 C58.4587507,67.4589463 59.1018758,67.3506463 59.6025008,66.9744463 C60.1012507,66.6001462 60.3975008,66.0054463 60.3975008,65.3746463 L60.3975008,64.4037463 C60.4087508,64.3372463 60.4087508,64.2707463 60.4087508,64.2004463 L60.4087508,33.9334457 C60.9262508,32.7060457 60.9450008,31.2582456 60.5531258,29.7781457 C60.4612508,29.1549458 60.2962508,28.5241457 60.0450008,27.8914457 C59.2312507,25.8470458 57.6506256,23.9375459 55.5937506,22.5144459 C53.5050009,21.0666459 51.1368757,20.2705459 48.9375007,20.2705459 C46.5149993,20.2705459 44.5406252,21.2148458 43.3818752,22.9324459 C42.2268748,24.650046 42.0825005,26.9471453 42.9918748,29.2328454 C43.8037509,31.2772449 45.3843749,33.1886459 47.4450016,34.6117452 C49.5300007,36.0576464 51.8981266,36.8537457 54.1012502,36.8537457 C54.3318737,36.8537457 54.5550013,36.838545 54.7743738,36.8195464 C54.9356246,36.8423466 55.0968754,36.8708454 55.258125,36.8803447 L55.258125,56.9747451 L33.93,50.301945 L33.93,26.3657458 C35.0531249,23.7000456 33.9131249,20.0083456 31.0199999,17.1545457 C30.9168749,17.0519457 30.8099999,16.9626457 30.7049999,16.8657457 C30.5793749,16.7479457 30.4518749,16.6320457 30.3206249,16.5180457 C30.1949999,16.4116457 30.0599999,16.3109457 29.9343749,16.2083457 C29.6531249,15.9822457 29.3906249,15.7428457 29.0887499,15.5357457 C26.9943751,14.0879457 24.6318749,13.2918457 22.4268749,13.2918457 C20.0043751,13.2918457 18.031875,14.2361458 16.875,15.9537457 Z M16.875,15.9537457" id="Rectangle 1" fill="rgb(0,0,0)" transform="translate(40.000000, 40.000000) scale(1, -1) translate(-40.000000, -40.000000)"></path>
<defs>
<path d="M368.5,17 C391.419818,17 410,-1.58018175 410,-24.5 C410,-47.4198183 391.419818,-66 368.5,-66 C345.580182,-66 327,-47.4198183 327,-24.5 C327,-1.58018175 345.580182,17 368.5,17 Z M368.5,153 C270.469452,153 191,73.5305479 191,-24.5 C191,-122.530548 270.469452,-202 368.5,-202 C466.530548,-202 546,-122.530548 546,-24.5 C546,73.5305479 466.530548,153 368.5,153 Z M368.5,153" id="path-1"></path>
</defs>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="Oval 1">
<use fill="#0B0A0A" fill-rule="evenodd" sketch:type="MSShapeGroup" xlink:href="#path-1"></use>
<use fill="none" xlink:href="#path-1"></use>
</g>
<path d="M38.4021158,37.7907545 C40.0517338,35.3447574 42.8643728,34 46.3186782,34 C49.4628449,34 52.8315951,35.1337089 55.8180184,37.1954897 C56.2484698,37.4904163 56.6227753,37.8313407 57.023817,38.1533248 C57.202949,38.2994353 57.395449,38.44284 57.5745809,38.5943619 C57.7617337,38.7567069 57.9435392,38.9217576 58.1226712,39.089514 C58.2723934,39.2275072 58.4247892,39.3546774 58.5718378,39.5007879 C62.6972197,43.5648229 64.3227754,48.8220933 62.7212824,52.6182596 L62.7212824,86.7052854 L93.1336088,96.2078764 L93.1336088,67.5918735 C92.9036789,67.5783457 92.6737472,67.5377611 92.4438154,67.5052919 C92.1310065,67.5323474 91.812843,67.5539945 91.483991,67.5539945 C88.3425,67.5539945 84.9657279,66.4202865 81.9926736,64.3612097 C79.0543725,62.3346047 76.8005198,59.6126198 75.6428447,56.7012345 C74.3461442,53.4462181 74.5520114,50.1749685 76.1989563,47.7289712 C77.851248,45.2829739 80.6665592,43.9382166 84.1208668,43.9382166 C87.2570126,43.9382166 90.6337838,45.0719255 93.6121861,47.1337063 C96.5451375,49.1603124 98.7989918,51.8795901 99.9593391,54.790976 C100.317603,55.6919905 100.552881,56.5902992 100.683888,57.4777848 C101.242672,59.5855633 101.215936,61.6473441 100.47802,63.3952581 L100.47802,106.497842 C100.47802,106.597955 100.47802,106.692656 100.461978,106.787357 L100.461978,108.169995 C100.461978,109.068303 100.039547,109.915203 99.3283669,110.448235 C98.6145127,110.983974 97.6974641,111.138201 96.8392349,110.873038 L57.2778101,98.5077654 C56.1040948,98.1424893 55.3046851,97.0439551 55.3046851,95.8020163 C55.3046851,88.7995375 55.3180532,81.7862365 55.3340949,74.7567003 C55.3501372,69.012392 55.3608309,63.2545598 55.3688524,57.4886084 C54.8234358,57.5643691 54.2699976,57.618484 53.6844771,57.618484 C50.5403101,57.618484 47.1688867,56.4820692 44.1904837,54.4229937 C41.2521852,52.3936819 39.0063519,49.6771106 37.8460047,46.765724 C36.5493032,43.5080021 36.7498242,40.2367517 38.4021158,37.7907545" id="path1534" fill="#9B9B9B" sketch:type="MSShapeGroup" transform="translate(69.035570, 72.500000) scale(1, -1) translate(-69.035570, -72.500000) "></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

22
data/images/trending.svg Normal file
View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="51px" height="48px" viewBox="0 0 51 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>trending</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<filter x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" id="filter-1">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
<feGaussianBlur stdDeviation="1.5" in="shadowOffsetInner1" result="shadowBlurInner1"></feGaussianBlur>
<feComposite in="shadowBlurInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0" in="shadowInnerInner1" type="matrix" result="shadowMatrixInner1"></feColorMatrix>
<feMerge>
<feMergeNode in="SourceGraphic"></feMergeNode>
<feMergeNode in="shadowMatrixInner1"></feMergeNode>
</feMerge>
</filter>
</defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="basic2-089_heart_beat" sketch:type="MSLayerGroup" filter="url(#filter-1)" fill="#C33A35">
<path d="M27.935,47.562 C26.966,47.562 26.126,46.89 25.915,45.941 L18.221,11.314 L13.601,29.363 C13.367,30.279 12.542,30.92 11.596,30.92 L2.925,30.92 C1.78,30.92 0.855,29.994 0.855,28.85 C0.855,27.707 1.781,26.782 2.925,26.782 L9.989,26.782 L16.358,1.901 C16.594,0.973 17.434,0.3 18.395,0.344 C19.353,0.36 20.174,1.031 20.383,1.965 L27.826,35.462 L31.625,16.425 C31.799,15.553 32.514,14.889 33.396,14.778 C34.283,14.663 35.133,15.13 35.52,15.932 L40.082,25.405 L48.037,25.405 C49.181,25.405 50.107,26.333 50.107,27.475 C50.107,28.62 49.18,29.545 48.037,29.545 L38.781,29.545 C37.986,29.545 37.261,29.09 36.917,28.373 L34.476,23.3 L29.966,45.895 C29.775,46.856 28.938,47.549 27.958,47.561 C27.951,47.562 27.943,47.562 27.935,47.562 L27.935,47.562 L27.935,47.562 L27.935,47.562 L27.935,47.562 Z M27.935,47.562" id="Shape" sketch:type="MSShapeGroup"></path>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -1,14 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="38px" height="38px" viewBox="0 0 38 38" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>view-toggle-inactive-centre</title>
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="173.920641%" id="linearGradient-1">
<stop stop-color="rgb(254,255,254)" offset="0%"></stop>
<stop stop-color="rgb(0,0,0)" offset="100%"></stop>
<linearGradient x1="50%" y1="0%" x2="50%" y2="321.977796%" id="linearGradient-1">
<stop stop-color="#FEFFFE" offset="0%"></stop>
<stop stop-color="#000000" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<path d="M0,0 L0,38 L38,38 L38,0 L0,0 Z M0,0" id="Rectangle 1" stroke="rgb(150,150,150)" stroke-width="1" fill="url(#linearGradient-1)" transform="translate(19.000000, 19.000000) scale(-1, 1) translate(-19.000000, -19.000000)"></path>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="view-toggle-inactive-centre" sketch:type="MSLayerGroup" transform="translate(1.000000, 1.000000)" stroke="#969696" fill="url(#linearGradient-1)">
<g id="Page 1" sketch:type="MSShapeGroup">
<path d="M0,0 L0,38 L38,38 L38,0 L0,0 L0,0 Z M0,0" id="Rectangle 1" transform="translate(19.000000, 19.000000) scale(-1, 1) translate(-19.000000, -19.000000) "></path>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 985 B

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,14 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="38px" height="38px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>view-toggle-inactive-right</title>
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="173.920641%" id="linearGradient-1">
<stop stop-color="rgb(254,255,254)" offset="0%"></stop>
<stop stop-color="rgb(0,0,0)" offset="100%"></stop>
<linearGradient x1="50%" y1="0%" x2="50%" y2="321.977796%" id="linearGradient-1">
<stop stop-color="#FEFFFE" offset="0%"></stop>
<stop stop-color="#000000" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<path d="M0,0 L0,38 L26.0026482,38 C32.6286026,38 38,32.636124 38,26.0026482 L38,11.9973518 C38,5.37139735 32.636124,0 26.0026482,0 L0,0 Z M0,0" id="Rectangle 2" stroke="rgb(150,150,150)" stroke-width="1" fill="url(#linearGradient-1)"></path>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="view-toggle-inactive-right" sketch:type="MSLayerGroup" transform="translate(1.000000, 1.000000)" stroke="#969696" fill="url(#linearGradient-1)">
<g id="Page 1" sketch:type="MSShapeGroup">
<path d="M0,0 L0,38 L26.0026482,38 C32.6286026,38 38,32.636124 38,26.0026482 L38,11.9973518 C38,5.37139735 32.636124,0 26.0026482,0 L0,0 L0,0 Z M0,0" id="Rectangle 2"></path>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 972 B

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,16 +1,18 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="38px" height="38px" viewBox="0 0 38 38" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>view-toggle-pressed-left</title>
<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<linearGradient x1="50%" y1="50%" x2="50%" y2="0%" id="linearGradient-1">
<stop stop-color="rgb(37,41,44)" offset="0%"></stop>
<stop stop-color="rgb(0,0,0)" stop-opacity="0.5" offset="100%"></stop>
<linearGradient x1="50%" y1="0%" x2="50%" y2="321.977796%" id="linearGradient-1">
<stop stop-color="#FEFFFE" offset="0%"></stop>
<stop stop-color="#000000" offset="100%"></stop>
</linearGradient>
<path d="M11.9973518,0 C5.37139735,0 0,5.36387601 0,11.9973518 L0,26.0026482 C0,32.6286026 5.36387601,38 11.9973518,38 L38,38 L38,0 L11.9973518,0 Z M11.9973518,0" id="path-2"></path>
</defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<use id="Rectangle 2" stroke="rgb(150,150,150)" stroke-width="1" fill="url(#linearGradient-1)" xlink:href="#path-2"></use>
<use id="Rectangle 2-1" stroke="none" fill="none" xlink:href="#path-2"></use>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="view-toggle-inactive-left" sketch:type="MSLayerGroup" transform="translate(1.000000, 1.000000)" stroke="#969696" fill="url(#linearGradient-1)">
<g id="Page 1" sketch:type="MSShapeGroup">
<path d="M11.9973518,0 C5.37139735,0 0,5.36387601 0,11.9973518 L0,26.0026482 C0,32.6286026 5.36387601,38 11.9973518,38 L38,38 L38,0 L11.9973518,0 L11.9973518,0 Z M11.9973518,0" id="Rectangle 2"></path>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

719
data/js/cryptojs-core.js Normal file
View File

@@ -0,0 +1,719 @@
/*
* CryptoJS v3.1.2
* https://code.google.com/p/crypto-js
* (c) 2009-2013 by Jeff Mott. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of conditions, and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the following disclaimer in the documentation or other materials provided with the distribution.
* Neither the name CryptoJS nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS," AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* CryptoJS core components.
*/
var CryptoJS = CryptoJS || (function (Math, undefined) {
/**
* CryptoJS namespace.
*/
var C = {};
/**
* Library namespace.
*/
var C_lib = C.lib = {};
/**
* Base object for prototypal inheritance.
*/
var Base = C_lib.Base = (function () {
function F() {}
return {
/**
* Creates a new object that inherits from this object.
*
* @param {Object} overrides Properties to copy into the new object.
*
* @return {Object} The new object.
*
* @static
*
* @example
*
* var MyType = CryptoJS.lib.Base.extend({
* field: 'value',
*
* method: function () {
* }
* });
*/
extend: function (overrides) {
// Spawn
F.prototype = this;
var subtype = new F();
// Augment
if (overrides) {
subtype.mixIn(overrides);
}
// Create default initializer
if (!subtype.hasOwnProperty('init')) {
subtype.init = function () {
subtype.$super.init.apply(this, arguments);
};
}
// Initializer's prototype is the subtype object
subtype.init.prototype = subtype;
// Reference supertype
subtype.$super = this;
return subtype;
},
/**
* Extends this object and runs the init method.
* Arguments to create() will be passed to init().
*
* @return {Object} The new object.
*
* @static
*
* @example
*
* var instance = MyType.create();
*/
create: function () {
var instance = this.extend();
instance.init.apply(instance, arguments);
return instance;
},
/**
* Initializes a newly created object.
* Override this method to add some logic when your objects are created.
*
* @example
*
* var MyType = CryptoJS.lib.Base.extend({
* init: function () {
* // ...
* }
* });
*/
init: function () {
},
/**
* Copies properties into this object.
*
* @param {Object} properties The properties to mix in.
*
* @example
*
* MyType.mixIn({
* field: 'value'
* });
*/
mixIn: function (properties) {
for (var propertyName in properties) {
if (properties.hasOwnProperty(propertyName)) {
this[propertyName] = properties[propertyName];
}
}
// IE won't copy toString using the loop above
if (properties.hasOwnProperty('toString')) {
this.toString = properties.toString;
}
},
/**
* Creates a copy of this object.
*
* @return {Object} The clone.
*
* @example
*
* var clone = instance.clone();
*/
clone: function () {
return this.init.prototype.extend(this);
}
};
}());
/**
* An array of 32-bit words.
*
* @property {Array} words The array of 32-bit words.
* @property {number} sigBytes The number of significant bytes in this word array.
*/
var WordArray = C_lib.WordArray = Base.extend({
/**
* Initializes a newly created word array.
*
* @param {Array} words (Optional) An array of 32-bit words.
* @param {number} sigBytes (Optional) The number of significant bytes in the words.
*
* @example
*
* var wordArray = CryptoJS.lib.WordArray.create();
* var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
* var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
*/
init: function (words, sigBytes) {
words = this.words = words || [];
if (sigBytes != undefined) {
this.sigBytes = sigBytes;
} else {
this.sigBytes = words.length * 4;
}
},
/**
* Converts this word array to a string.
*
* @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
*
* @return {string} The stringified word array.
*
* @example
*
* var string = wordArray + '';
* var string = wordArray.toString();
* var string = wordArray.toString(CryptoJS.enc.Utf8);
*/
toString: function (encoder) {
return (encoder || Hex).stringify(this);
},
/**
* Concatenates a word array to this word array.
*
* @param {WordArray} wordArray The word array to append.
*
* @return {WordArray} This word array.
*
* @example
*
* wordArray1.concat(wordArray2);
*/
concat: function (wordArray) {
// Shortcuts
var thisWords = this.words;
var thatWords = wordArray.words;
var thisSigBytes = this.sigBytes;
var thatSigBytes = wordArray.sigBytes;
// Clamp excess bits
this.clamp();
// Concat
if (thisSigBytes % 4) {
// Copy one byte at a time
for (var i = 0; i < thatSigBytes; i++) {
var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);
}
} else if (thatWords.length > 0xffff) {
// Copy one word at a time
for (var i = 0; i < thatSigBytes; i += 4) {
thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];
}
} else {
// Copy all words at once
thisWords.push.apply(thisWords, thatWords);
}
this.sigBytes += thatSigBytes;
// Chainable
return this;
},
/**
* Removes insignificant bits.
*
* @example
*
* wordArray.clamp();
*/
clamp: function () {
// Shortcuts
var words = this.words;
var sigBytes = this.sigBytes;
// Clamp
words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);
words.length = Math.ceil(sigBytes / 4);
},
/**
* Creates a copy of this word array.
*
* @return {WordArray} The clone.
*
* @example
*
* var clone = wordArray.clone();
*/
clone: function () {
var clone = Base.clone.call(this);
clone.words = this.words.slice(0);
return clone;
},
/**
* Creates a word array filled with random bytes.
*
* @param {number} nBytes The number of random bytes to generate.
*
* @return {WordArray} The random word array.
*
* @static
*
* @example
*
* var wordArray = CryptoJS.lib.WordArray.random(16);
*/
random: function (nBytes) {
var words = [];
for (var i = 0; i < nBytes; i += 4) {
words.push((Math.random() * 0x100000000) | 0);
}
return new WordArray.init(words, nBytes);
}
});
/**
* Encoder namespace.
*/
var C_enc = C.enc = {};
/**
* Hex encoding strategy.
*/
var Hex = C_enc.Hex = {
/**
* Converts a word array to a hex string.
*
* @param {WordArray} wordArray The word array.
*
* @return {string} The hex string.
*
* @static
*
* @example
*
* var hexString = CryptoJS.enc.Hex.stringify(wordArray);
*/
stringify: function (wordArray) {
// Shortcuts
var words = wordArray.words;
var sigBytes = wordArray.sigBytes;
// Convert
var hexChars = [];
for (var i = 0; i < sigBytes; i++) {
var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
hexChars.push((bite >>> 4).toString(16));
hexChars.push((bite & 0x0f).toString(16));
}
return hexChars.join('');
},
/**
* Converts a hex string to a word array.
*
* @param {string} hexStr The hex string.
*
* @return {WordArray} The word array.
*
* @static
*
* @example
*
* var wordArray = CryptoJS.enc.Hex.parse(hexString);
*/
parse: function (hexStr) {
// Shortcut
var hexStrLength = hexStr.length;
// Convert
var words = [];
for (var i = 0; i < hexStrLength; i += 2) {
words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
}
return new WordArray.init(words, hexStrLength / 2);
}
};
/**
* Latin1 encoding strategy.
*/
var Latin1 = C_enc.Latin1 = {
/**
* Converts a word array to a Latin1 string.
*
* @param {WordArray} wordArray The word array.
*
* @return {string} The Latin1 string.
*
* @static
*
* @example
*
* var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
*/
stringify: function (wordArray) {
// Shortcuts
var words = wordArray.words;
var sigBytes = wordArray.sigBytes;
// Convert
var latin1Chars = [];
for (var i = 0; i < sigBytes; i++) {
var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
latin1Chars.push(String.fromCharCode(bite));
}
return latin1Chars.join('');
},
/**
* Converts a Latin1 string to a word array.
*
* @param {string} latin1Str The Latin1 string.
*
* @return {WordArray} The word array.
*
* @static
*
* @example
*
* var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
*/
parse: function (latin1Str) {
// Shortcut
var latin1StrLength = latin1Str.length;
// Convert
var words = [];
for (var i = 0; i < latin1StrLength; i++) {
words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
}
return new WordArray.init(words, latin1StrLength);
}
};
/**
* UTF-8 encoding strategy.
*/
var Utf8 = C_enc.Utf8 = {
/**
* Converts a word array to a UTF-8 string.
*
* @param {WordArray} wordArray The word array.
*
* @return {string} The UTF-8 string.
*
* @static
*
* @example
*
* var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
*/
stringify: function (wordArray) {
try {
return decodeURIComponent(escape(Latin1.stringify(wordArray)));
} catch (e) {
throw new Error('Malformed UTF-8 data');
}
},
/**
* Converts a UTF-8 string to a word array.
*
* @param {string} utf8Str The UTF-8 string.
*
* @return {WordArray} The word array.
*
* @static
*
* @example
*
* var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
*/
parse: function (utf8Str) {
return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
}
};
/**
* Abstract buffered block algorithm template.
*
* The property blockSize must be implemented in a concrete subtype.
*
* @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
*/
var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({
/**
* Resets this block algorithm's data buffer to its initial state.
*
* @example
*
* bufferedBlockAlgorithm.reset();
*/
reset: function () {
// Initial values
this._data = new WordArray.init();
this._nDataBytes = 0;
},
/**
* Adds new data to this block algorithm's buffer.
*
* @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
*
* @example
*
* bufferedBlockAlgorithm._append('data');
* bufferedBlockAlgorithm._append(wordArray);
*/
_append: function (data) {
// Convert string to WordArray, else assume WordArray already
if (typeof data == 'string') {
data = Utf8.parse(data);
}
// Append
this._data.concat(data);
this._nDataBytes += data.sigBytes;
},
/**
* Processes available data blocks.
*
* This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
*
* @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
*
* @return {WordArray} The processed data.
*
* @example
*
* var processedData = bufferedBlockAlgorithm._process();
* var processedData = bufferedBlockAlgorithm._process(!!'flush');
*/
_process: function (doFlush) {
// Shortcuts
var data = this._data;
var dataWords = data.words;
var dataSigBytes = data.sigBytes;
var blockSize = this.blockSize;
var blockSizeBytes = blockSize * 4;
// Count blocks ready
var nBlocksReady = dataSigBytes / blockSizeBytes;
if (doFlush) {
// Round up to include partial blocks
nBlocksReady = Math.ceil(nBlocksReady);
} else {
// Round down to include only full blocks,
// less the number of blocks that must remain in the buffer
nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
}
// Count words ready
var nWordsReady = nBlocksReady * blockSize;
// Count bytes ready
var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);
// Process blocks
if (nWordsReady) {
for (var offset = 0; offset < nWordsReady; offset += blockSize) {
// Perform concrete-algorithm logic
this._doProcessBlock(dataWords, offset);
}
// Remove processed words
var processedWords = dataWords.splice(0, nWordsReady);
data.sigBytes -= nBytesReady;
}
// Return processed words
return new WordArray.init(processedWords, nBytesReady);
},
/**
* Creates a copy of this object.
*
* @return {Object} The clone.
*
* @example
*
* var clone = bufferedBlockAlgorithm.clone();
*/
clone: function () {
var clone = Base.clone.call(this);
clone._data = this._data.clone();
return clone;
},
_minBufferSize: 0
});
/**
* Abstract hasher template.
*
* @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
*/
var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({
/**
* Configuration options.
*/
cfg: Base.extend(),
/**
* Initializes a newly created hasher.
*
* @param {Object} cfg (Optional) The configuration options to use for this hash computation.
*
* @example
*
* var hasher = CryptoJS.algo.SHA256.create();
*/
init: function (cfg) {
// Apply config defaults
this.cfg = this.cfg.extend(cfg);
// Set initial values
this.reset();
},
/**
* Resets this hasher to its initial state.
*
* @example
*
* hasher.reset();
*/
reset: function () {
// Reset data buffer
BufferedBlockAlgorithm.reset.call(this);
// Perform concrete-hasher logic
this._doReset();
},
/**
* Updates this hasher with a message.
*
* @param {WordArray|string} messageUpdate The message to append.
*
* @return {Hasher} This hasher.
*
* @example
*
* hasher.update('message');
* hasher.update(wordArray);
*/
update: function (messageUpdate) {
// Append
this._append(messageUpdate);
// Update the hash
this._process();
// Chainable
return this;
},
/**
* Finalizes the hash computation.
* Note that the finalize operation is effectively a destructive, read-once operation.
*
* @param {WordArray|string} messageUpdate (Optional) A final message update.
*
* @return {WordArray} The hash.
*
* @example
*
* var hash = hasher.finalize();
* var hash = hasher.finalize('message');
* var hash = hasher.finalize(wordArray);
*/
finalize: function (messageUpdate) {
// Final message update
if (messageUpdate) {
this._append(messageUpdate);
}
// Perform concrete-hasher logic
var hash = this._doFinalize();
return hash;
},
blockSize: 512/32,
/**
* Creates a shortcut function to a hasher's object interface.
*
* @param {Hasher} hasher The hasher to create a helper for.
*
* @return {Function} The shortcut function.
*
* @static
*
* @example
*
* var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
*/
_createHelper: function (hasher) {
return function (message, cfg) {
return new hasher.init(cfg).finalize(message);
};
},
/**
* Creates a shortcut function to the HMAC's object interface.
*
* @param {Hasher} hasher The hasher to use in this HMAC helper.
*
* @return {Function} The shortcut function.
*
* @static
*
* @example
*
* var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
*/
_createHmacHelper: function (hasher) {
return function (message, key) {
return new C_algo.HMAC.init(hasher, key).finalize(message);
};
}
});
/**
* Algorithm namespace.
*/
var C_algo = C.algo = {};
return C;
}(Math));

35
data/js/cryptojs/aes.js Normal file
View File

@@ -0,0 +1,35 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(u,p){var d={},l=d.lib={},s=function(){},t=l.Base={extend:function(a){s.prototype=this;var c=new s;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
r=l.WordArray=t.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var c=this.words,e=a.words,j=this.sigBytes;a=a.sigBytes;this.clamp();if(j%4)for(var k=0;k<a;k++)c[j+k>>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else if(65535<e.length)for(k=0;k<a;k+=4)c[j+k>>>2]=e[k>>>2];else c.push.apply(c,e);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],e=0;e<a;e+=4)c.push(4294967296*u.random()|0);return new r.init(c,a)}}),w=d.enc={},v=w.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++){var k=c[j>>>2]>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j+=2)e[j>>>3]|=parseInt(a.substr(j,
2),16)<<24-4*(j%8);return new r.init(e,c/2)}},b=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++)e.push(String.fromCharCode(c[j>>>2]>>>24-8*(j%4)&255));return e.join("")},parse:function(a){for(var c=a.length,e=[],j=0;j<c;j++)e[j>>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new r.init(e,c)}},x=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}},
q=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,e=c.words,j=c.sigBytes,k=this.blockSize,b=j/(4*k),b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*k;j=u.min(4*a,j);if(a){for(var q=0;q<a;q+=k)this._doProcessBlock(e,q);q=e.splice(0,a);c.sigBytes-=j}return new r.init(q,j)},clone:function(){var a=t.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});l.Hasher=q.extend({cfg:t.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createHmacHelper:function(a){return function(b,e){return(new n.HMAC.init(a,
e)).finalize(b)}}});var n=d.algo={};return d}(Math);
(function(){var u=CryptoJS,p=u.lib.WordArray;u.enc.Base64={stringify:function(d){var l=d.words,p=d.sigBytes,t=this._map;d.clamp();d=[];for(var r=0;r<p;r+=3)for(var w=(l[r>>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v<p;v++)d.push(t.charAt(w>>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return d.join("")},parse:function(d){var l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var t=[],r=0,w=0;w<
l;w++)if(w%4){var v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return p.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();
(function(u){function p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<<j|b>>>32-j)+n}function d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<<j|b>>>32-j)+n}function l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<<j|b>>>32-j)+n}function s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<<j|b>>>32-j)+n}for(var t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])},
_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]),
f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f,
m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m,
E,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var e=u.floor(a/
4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math);
(function(){var u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length<q;){n&&s.update(n);var n=s.update(d).finalize(r);s.reset();for(var a=1;a<p;a++)n=s.finalize(n),s.reset();b.concat(n)}b.sigBytes=4*q;return b}});u.EvpKDF=function(d,l,p){return s.create(p).compute(d,
l)}})();
CryptoJS.lib.Cipher||function(u){var p=CryptoJS,d=p.lib,l=d.Base,s=d.WordArray,t=d.BufferedBlockAlgorithm,r=p.enc.Base64,w=p.algo.EvpKDF,v=d.Cipher=t.extend({cfg:l.extend(),createEncryptor:function(e,a){return this.create(this._ENC_XFORM_MODE,e,a)},createDecryptor:function(e,a){return this.create(this._DEC_XFORM_MODE,e,a)},init:function(e,a,b){this.cfg=this.cfg.extend(b);this._xformMode=e;this._key=a;this.reset()},reset:function(){t.reset.call(this);this._doReset()},process:function(e){this._append(e);return this._process()},
finalize:function(e){e&&this._append(e);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(b,k,d){return("string"==typeof k?c:a).encrypt(e,b,k,d)},decrypt:function(b,k,d){return("string"==typeof k?c:a).decrypt(e,b,k,d)}}}});d.StreamCipher=v.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var b=p.mode={},x=function(e,a,b){var c=this._iv;c?this._iv=u:c=this._prevBlock;for(var d=0;d<b;d++)e[a+d]^=
c[d]},q=(d.BlockCipherMode=l.extend({createEncryptor:function(e,a){return this.Encryptor.create(e,a)},createDecryptor:function(e,a){return this.Decryptor.create(e,a)},init:function(e,a){this._cipher=e;this._iv=a}})).extend();q.Encryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlock=e.slice(a,a+c)}});q.Decryptor=q.extend({processBlock:function(e,a){var b=this._cipher,c=b.blockSize,d=e.slice(a,a+c);b.decryptBlock(e,a);x.call(this,
e,a,c);this._prevBlock=d}});b=b.CBC=q;q=(p.pad={}).Pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigBytes%c,d=c<<24|c<<16|c<<8|c,l=[],n=0;n<c;n+=4)l.push(d);c=s.create(l,c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,
this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?s.create([1398893684,
1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})},
decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d,
b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return a.decrypt.call(this,b,c,d.key,l)}})}();
(function(){for(var u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var e=0,j=0,c=0;256>c;c++){var k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var H=[0,1,2,4,8,
16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j<a;j++)if(j<d)e[j]=c[j];else{var k=e[j-1];j%d?6<d&&4==j%d&&(k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;d<a;d++)j=a-d,k=d%4?e[j]:e[j-4],c[d]=4>d||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>>
8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r<m;r++)var q=d[g>>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t=
d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})();

View File

@@ -0,0 +1,21 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(q,r){var k={},g=k.lib={},p=function(){},t=g.Base={extend:function(b){p.prototype=this;var j=new p;b&&j.mixIn(b);j.hasOwnProperty("init")||(j.init=function(){j.$super.init.apply(this,arguments)});j.init.prototype=j;j.$super=this;return j},create:function(){var b=this.extend();b.init.apply(b,arguments);return b},init:function(){},mixIn:function(b){for(var j in b)b.hasOwnProperty(j)&&(this[j]=b[j]);b.hasOwnProperty("toString")&&(this.toString=b.toString)},clone:function(){return this.init.prototype.extend(this)}},
n=g.WordArray=t.extend({init:function(b,j){b=this.words=b||[];this.sigBytes=j!=r?j:4*b.length},toString:function(b){return(b||u).stringify(this)},concat:function(b){var j=this.words,a=b.words,l=this.sigBytes;b=b.sigBytes;this.clamp();if(l%4)for(var h=0;h<b;h++)j[l+h>>>2]|=(a[h>>>2]>>>24-8*(h%4)&255)<<24-8*((l+h)%4);else if(65535<a.length)for(h=0;h<b;h+=4)j[l+h>>>2]=a[h>>>2];else j.push.apply(j,a);this.sigBytes+=b;return this},clamp:function(){var b=this.words,j=this.sigBytes;b[j>>>2]&=4294967295<<
32-8*(j%4);b.length=q.ceil(j/4)},clone:function(){var b=t.clone.call(this);b.words=this.words.slice(0);return b},random:function(b){for(var j=[],a=0;a<b;a+=4)j.push(4294967296*q.random()|0);return new n.init(j,b)}}),v=k.enc={},u=v.Hex={stringify:function(b){var a=b.words;b=b.sigBytes;for(var h=[],l=0;l<b;l++){var m=a[l>>>2]>>>24-8*(l%4)&255;h.push((m>>>4).toString(16));h.push((m&15).toString(16))}return h.join("")},parse:function(b){for(var a=b.length,h=[],l=0;l<a;l+=2)h[l>>>3]|=parseInt(b.substr(l,
2),16)<<24-4*(l%8);return new n.init(h,a/2)}},a=v.Latin1={stringify:function(b){var a=b.words;b=b.sigBytes;for(var h=[],l=0;l<b;l++)h.push(String.fromCharCode(a[l>>>2]>>>24-8*(l%4)&255));return h.join("")},parse:function(b){for(var a=b.length,h=[],l=0;l<a;l++)h[l>>>2]|=(b.charCodeAt(l)&255)<<24-8*(l%4);return new n.init(h,a)}},s=v.Utf8={stringify:function(b){try{return decodeURIComponent(escape(a.stringify(b)))}catch(h){throw Error("Malformed UTF-8 data");}},parse:function(b){return a.parse(unescape(encodeURIComponent(b)))}},
h=g.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new n.init;this._nDataBytes=0},_append:function(b){"string"==typeof b&&(b=s.parse(b));this._data.concat(b);this._nDataBytes+=b.sigBytes},_process:function(b){var a=this._data,h=a.words,l=a.sigBytes,m=this.blockSize,k=l/(4*m),k=b?q.ceil(k):q.max((k|0)-this._minBufferSize,0);b=k*m;l=q.min(4*b,l);if(b){for(var g=0;g<b;g+=m)this._doProcessBlock(h,g);g=h.splice(0,b);a.sigBytes-=l}return new n.init(g,l)},clone:function(){var b=t.clone.call(this);
b._data=this._data.clone();return b},_minBufferSize:0});g.Hasher=h.extend({cfg:t.extend(),init:function(b){this.cfg=this.cfg.extend(b);this.reset()},reset:function(){h.reset.call(this);this._doReset()},update:function(b){this._append(b);this._process();return this},finalize:function(b){b&&this._append(b);return this._doFinalize()},blockSize:16,_createHelper:function(b){return function(a,h){return(new b.init(h)).finalize(a)}},_createHmacHelper:function(b){return function(a,h){return(new m.HMAC.init(b,
h)).finalize(a)}}});var m=k.algo={};return k}(Math);
(function(q){function r(a,m,b,j,g,l,k){a=a+(m&b|~m&j)+g+k;return(a<<l|a>>>32-l)+m}function k(a,m,b,j,g,l,k){a=a+(m&j|b&~j)+g+k;return(a<<l|a>>>32-l)+m}function g(a,m,b,j,g,l,k){a=a+(m^b^j)+g+k;return(a<<l|a>>>32-l)+m}function p(a,g,b,j,k,l,p){a=a+(b^(g|~j))+k+p;return(a<<l|a>>>32-l)+g}for(var t=CryptoJS,n=t.lib,v=n.WordArray,u=n.Hasher,n=t.algo,a=[],s=0;64>s;s++)a[s]=4294967296*q.abs(q.sin(s+1))|0;n=n.MD5=u.extend({_doReset:function(){this._hash=new v.init([1732584193,4023233417,2562383102,271733878])},
_doProcessBlock:function(h,m){for(var b=0;16>b;b++){var j=m+b,n=h[j];h[j]=(n<<8|n>>>24)&16711935|(n<<24|n>>>8)&4278255360}var b=this._hash.words,j=h[m+0],n=h[m+1],l=h[m+2],q=h[m+3],t=h[m+4],s=h[m+5],u=h[m+6],v=h[m+7],w=h[m+8],x=h[m+9],y=h[m+10],z=h[m+11],A=h[m+12],B=h[m+13],C=h[m+14],D=h[m+15],c=b[0],d=b[1],e=b[2],f=b[3],c=r(c,d,e,f,j,7,a[0]),f=r(f,c,d,e,n,12,a[1]),e=r(e,f,c,d,l,17,a[2]),d=r(d,e,f,c,q,22,a[3]),c=r(c,d,e,f,t,7,a[4]),f=r(f,c,d,e,s,12,a[5]),e=r(e,f,c,d,u,17,a[6]),d=r(d,e,f,c,v,22,a[7]),
c=r(c,d,e,f,w,7,a[8]),f=r(f,c,d,e,x,12,a[9]),e=r(e,f,c,d,y,17,a[10]),d=r(d,e,f,c,z,22,a[11]),c=r(c,d,e,f,A,7,a[12]),f=r(f,c,d,e,B,12,a[13]),e=r(e,f,c,d,C,17,a[14]),d=r(d,e,f,c,D,22,a[15]),c=k(c,d,e,f,n,5,a[16]),f=k(f,c,d,e,u,9,a[17]),e=k(e,f,c,d,z,14,a[18]),d=k(d,e,f,c,j,20,a[19]),c=k(c,d,e,f,s,5,a[20]),f=k(f,c,d,e,y,9,a[21]),e=k(e,f,c,d,D,14,a[22]),d=k(d,e,f,c,t,20,a[23]),c=k(c,d,e,f,x,5,a[24]),f=k(f,c,d,e,C,9,a[25]),e=k(e,f,c,d,q,14,a[26]),d=k(d,e,f,c,w,20,a[27]),c=k(c,d,e,f,B,5,a[28]),f=k(f,c,
d,e,l,9,a[29]),e=k(e,f,c,d,v,14,a[30]),d=k(d,e,f,c,A,20,a[31]),c=g(c,d,e,f,s,4,a[32]),f=g(f,c,d,e,w,11,a[33]),e=g(e,f,c,d,z,16,a[34]),d=g(d,e,f,c,C,23,a[35]),c=g(c,d,e,f,n,4,a[36]),f=g(f,c,d,e,t,11,a[37]),e=g(e,f,c,d,v,16,a[38]),d=g(d,e,f,c,y,23,a[39]),c=g(c,d,e,f,B,4,a[40]),f=g(f,c,d,e,j,11,a[41]),e=g(e,f,c,d,q,16,a[42]),d=g(d,e,f,c,u,23,a[43]),c=g(c,d,e,f,x,4,a[44]),f=g(f,c,d,e,A,11,a[45]),e=g(e,f,c,d,D,16,a[46]),d=g(d,e,f,c,l,23,a[47]),c=p(c,d,e,f,j,6,a[48]),f=p(f,c,d,e,v,10,a[49]),e=p(e,f,c,d,
C,15,a[50]),d=p(d,e,f,c,s,21,a[51]),c=p(c,d,e,f,A,6,a[52]),f=p(f,c,d,e,q,10,a[53]),e=p(e,f,c,d,y,15,a[54]),d=p(d,e,f,c,n,21,a[55]),c=p(c,d,e,f,w,6,a[56]),f=p(f,c,d,e,D,10,a[57]),e=p(e,f,c,d,u,15,a[58]),d=p(d,e,f,c,B,21,a[59]),c=p(c,d,e,f,t,6,a[60]),f=p(f,c,d,e,z,10,a[61]),e=p(e,f,c,d,l,15,a[62]),d=p(d,e,f,c,x,21,a[63]);b[0]=b[0]+c|0;b[1]=b[1]+d|0;b[2]=b[2]+e|0;b[3]=b[3]+f|0},_doFinalize:function(){var a=this._data,g=a.words,b=8*this._nDataBytes,j=8*a.sigBytes;g[j>>>5]|=128<<24-j%32;var k=q.floor(b/
4294967296);g[(j+64>>>9<<4)+15]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360;g[(j+64>>>9<<4)+14]=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360;a.sigBytes=4*(g.length+1);this._process();a=this._hash;g=a.words;for(b=0;4>b;b++)j=g[b],g[b]=(j<<8|j>>>24)&16711935|(j<<24|j>>>8)&4278255360;return a},clone:function(){var a=u.clone.call(this);a._hash=this._hash.clone();return a}});t.MD5=u._createHelper(n);t.HmacMD5=u._createHmacHelper(n)})(Math);
(function(){var q=CryptoJS,r=q.enc.Utf8;q.algo.HMAC=q.lib.Base.extend({init:function(k,g){k=this._hasher=new k.init;"string"==typeof g&&(g=r.parse(g));var p=k.blockSize,q=4*p;g.sigBytes>q&&(g=k.finalize(g));g.clamp();for(var n=this._oKey=g.clone(),v=this._iKey=g.clone(),u=n.words,a=v.words,s=0;s<p;s++)u[s]^=1549556828,a[s]^=909522486;n.sigBytes=v.sigBytes=q;this.reset()},reset:function(){var k=this._hasher;k.reset();k.update(this._iKey)},update:function(k){this._hasher.update(k);return this},finalize:function(k){var g=
this._hasher;k=g.finalize(k);g.reset();return g.finalize(this._oKey.clone().concat(k))}})})();

View File

@@ -0,0 +1,31 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
/*
(c) 2012 by C?dric Mesnil. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
CryptoJS=CryptoJS||function(h,j){var c={},e=c.lib={},A=function(){},l=e.Base={extend:function(a){A.prototype=this;var d=new A;a&&d.mixIn(a);d.hasOwnProperty("init")||(d.init=function(){d.$super.init.apply(this,arguments)});d.init.prototype=d;d.$super=this;return d},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var d in a)a.hasOwnProperty(d)&&(this[d]=a[d]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
m=e.WordArray=l.extend({init:function(a,d){a=this.words=a||[];this.sigBytes=d!=j?d:4*a.length},toString:function(a){return(a||x).stringify(this)},concat:function(a){var d=this.words,B=a.words,f=this.sigBytes;a=a.sigBytes;this.clamp();if(f%4)for(var b=0;b<a;b++)d[f+b>>>2]|=(B[b>>>2]>>>24-8*(b%4)&255)<<24-8*((f+b)%4);else if(65535<B.length)for(b=0;b<a;b+=4)d[f+b>>>2]=B[b>>>2];else d.push.apply(d,B);this.sigBytes+=a;return this},clamp:function(){var a=this.words,d=this.sigBytes;a[d>>>2]&=4294967295<<
32-8*(d%4);a.length=h.ceil(d/4)},clone:function(){var a=l.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var d=[],b=0;b<a;b+=4)d.push(4294967296*h.random()|0);return new m.init(d,a)}}),v=c.enc={},x=v.Hex={stringify:function(a){var d=a.words;a=a.sigBytes;for(var b=[],f=0;f<a;f++){var c=d[f>>>2]>>>24-8*(f%4)&255;b.push((c>>>4).toString(16));b.push((c&15).toString(16))}return b.join("")},parse:function(a){for(var d=a.length,b=[],f=0;f<d;f+=2)b[f>>>3]|=parseInt(a.substr(f,
2),16)<<24-4*(f%8);return new m.init(b,d/2)}},w=v.Latin1={stringify:function(a){var d=a.words;a=a.sigBytes;for(var b=[],f=0;f<a;f++)b.push(String.fromCharCode(d[f>>>2]>>>24-8*(f%4)&255));return b.join("")},parse:function(a){for(var b=a.length,c=[],f=0;f<b;f++)c[f>>>2]|=(a.charCodeAt(f)&255)<<24-8*(f%4);return new m.init(c,b)}},k=v.Utf8={stringify:function(a){try{return decodeURIComponent(escape(w.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return w.parse(unescape(encodeURIComponent(a)))}},
u=e.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new m.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=k.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var b=this._data,c=b.words,f=b.sigBytes,e=this.blockSize,k=f/(4*e),k=a?h.ceil(k):h.max((k|0)-this._minBufferSize,0);a=k*e;f=h.min(4*a,f);if(a){for(var u=0;u<a;u+=e)this._doProcessBlock(c,u);u=c.splice(0,a);b.sigBytes-=f}return new m.init(u,f)},clone:function(){var a=l.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});e.Hasher=u.extend({cfg:l.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){u.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,c){return(new a.init(c)).finalize(b)}},_createHmacHelper:function(a){return function(d,c){return(new b.HMAC.init(a,
c)).finalize(d)}}});var b=c.algo={};return c}(Math);
(function(){var h=CryptoJS,j=h.lib,c=j.WordArray,e=j.Hasher,j=h.algo,A=c.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),l=c.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),m=c.create([11,14,15,12,
5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),v=c.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),x=c.create([0,1518500249,1859775393,2400959708,2840853838]),w=c.create([1352829926,1548603684,1836072691,
2053994217,0]),j=j.RIPEMD160=e.extend({_doReset:function(){this._hash=c.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(c,e){for(var b=0;16>b;b++){var a=e+b,d=c[a];c[a]=(d<<8|d>>>24)&16711935|(d<<24|d>>>8)&4278255360}var a=this._hash.words,d=x.words,h=w.words,f=A.words,j=l.words,E=m.words,F=v.words,C,n,p,q,y,D,r,s,t,z;D=C=a[0];r=n=a[1];s=p=a[2];t=q=a[3];z=y=a[4];for(var g,b=0;80>b;b+=1)g=C+c[e+f[b]]|0,g=16>b?g+((n^p^q)+d[0]):32>b?g+((n&p|~n&q)+d[1]):48>b?
g+(((n|~p)^q)+d[2]):64>b?g+((n&q|p&~q)+d[3]):g+((n^(p|~q))+d[4]),g|=0,g=g<<E[b]|g>>>32-E[b],g=g+y|0,C=y,y=q,q=p<<10|p>>>22,p=n,n=g,g=D+c[e+j[b]]|0,g=16>b?g+((r^(s|~t))+h[0]):32>b?g+((r&t|s&~t)+h[1]):48>b?g+(((r|~s)^t)+h[2]):64>b?g+((r&s|~r&t)+h[3]):g+((r^s^t)+h[4]),g|=0,g=g<<F[b]|g>>>32-F[b],g=g+z|0,D=z,z=t,t=s<<10|s>>>22,s=r,r=g;g=a[1]+p+t|0;a[1]=a[2]+q+z|0;a[2]=a[3]+y+D|0;a[3]=a[4]+C+r|0;a[4]=a[0]+n+s|0;a[0]=g},_doFinalize:function(){var c=this._data,e=c.words,b=8*this._nDataBytes,a=8*c.sigBytes;
e[a>>>5]|=128<<24-a%32;e[(a+64>>>9<<4)+14]=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360;c.sigBytes=4*(e.length+1);this._process();c=this._hash;e=c.words;for(b=0;5>b;b++)a=e[b],e[b]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;return c},clone:function(){var c=e.clone.call(this);c._hash=this._hash.clone();return c}});h.RIPEMD160=e._createHelper(j);h.HmacRIPEMD160=e._createHmacHelper(j)})(Math);
(function(){var h=CryptoJS,j=h.enc.Utf8;h.algo.HMAC=h.lib.Base.extend({init:function(c,e){c=this._hasher=new c.init;"string"==typeof e&&(e=j.parse(e));var h=c.blockSize,l=4*h;e.sigBytes>l&&(e=c.finalize(e));e.clamp();for(var m=this._oKey=e.clone(),v=this._iKey=e.clone(),x=m.words,w=v.words,k=0;k<h;k++)x[k]^=1549556828,w[k]^=909522486;m.sigBytes=v.sigBytes=l;this.reset()},reset:function(){var c=this._hasher;c.reset();c.update(this._iKey)},update:function(c){this._hasher.update(c);return this},finalize:function(c){var e=
this._hasher;c=e.finalize(c);e.reset();return e.finalize(this._oKey.clone().concat(c))}})})();

View File

@@ -0,0 +1,17 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(g,l){var e={},d=e.lib={},m=function(){},k=d.Base={extend:function(a){m.prototype=this;var c=new m;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
p=d.WordArray=k.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=l?c:4*a.length},toString:function(a){return(a||n).stringify(this)},concat:function(a){var c=this.words,q=a.words,f=this.sigBytes;a=a.sigBytes;this.clamp();if(f%4)for(var b=0;b<a;b++)c[f+b>>>2]|=(q[b>>>2]>>>24-8*(b%4)&255)<<24-8*((f+b)%4);else if(65535<q.length)for(b=0;b<a;b+=4)c[f+b>>>2]=q[b>>>2];else c.push.apply(c,q);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
32-8*(c%4);a.length=g.ceil(c/4)},clone:function(){var a=k.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],b=0;b<a;b+=4)c.push(4294967296*g.random()|0);return new p.init(c,a)}}),b=e.enc={},n=b.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],f=0;f<a;f++){var d=c[f>>>2]>>>24-8*(f%4)&255;b.push((d>>>4).toString(16));b.push((d&15).toString(16))}return b.join("")},parse:function(a){for(var c=a.length,b=[],f=0;f<c;f+=2)b[f>>>3]|=parseInt(a.substr(f,
2),16)<<24-4*(f%8);return new p.init(b,c/2)}},j=b.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],f=0;f<a;f++)b.push(String.fromCharCode(c[f>>>2]>>>24-8*(f%4)&255));return b.join("")},parse:function(a){for(var c=a.length,b=[],f=0;f<c;f++)b[f>>>2]|=(a.charCodeAt(f)&255)<<24-8*(f%4);return new p.init(b,c)}},h=b.Utf8={stringify:function(a){try{return decodeURIComponent(escape(j.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return j.parse(unescape(encodeURIComponent(a)))}},
r=d.BufferedBlockAlgorithm=k.extend({reset:function(){this._data=new p.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=h.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,b=c.words,f=c.sigBytes,d=this.blockSize,e=f/(4*d),e=a?g.ceil(e):g.max((e|0)-this._minBufferSize,0);a=e*d;f=g.min(4*a,f);if(a){for(var k=0;k<a;k+=d)this._doProcessBlock(b,k);k=b.splice(0,a);c.sigBytes-=f}return new p.init(k,f)},clone:function(){var a=k.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});d.Hasher=r.extend({cfg:k.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){r.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,d){return(new a.init(d)).finalize(b)}},_createHmacHelper:function(a){return function(b,d){return(new s.HMAC.init(a,
d)).finalize(b)}}});var s=e.algo={};return e}(Math);
(function(){var g=CryptoJS,l=g.lib,e=l.WordArray,d=l.Hasher,m=[],l=g.algo.SHA1=d.extend({_doReset:function(){this._hash=new e.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(d,e){for(var b=this._hash.words,n=b[0],j=b[1],h=b[2],g=b[3],l=b[4],a=0;80>a;a++){if(16>a)m[a]=d[e+a]|0;else{var c=m[a-3]^m[a-8]^m[a-14]^m[a-16];m[a]=c<<1|c>>>31}c=(n<<5|n>>>27)+l+m[a];c=20>a?c+((j&h|~j&g)+1518500249):40>a?c+((j^h^g)+1859775393):60>a?c+((j&h|j&g|h&g)-1894007588):c+((j^h^
g)-899497514);l=g;g=h;h=j<<30|j>>>2;j=n;n=c}b[0]=b[0]+n|0;b[1]=b[1]+j|0;b[2]=b[2]+h|0;b[3]=b[3]+g|0;b[4]=b[4]+l|0},_doFinalize:function(){var d=this._data,e=d.words,b=8*this._nDataBytes,g=8*d.sigBytes;e[g>>>5]|=128<<24-g%32;e[(g+64>>>9<<4)+14]=Math.floor(b/4294967296);e[(g+64>>>9<<4)+15]=b;d.sigBytes=4*e.length;this._process();return this._hash},clone:function(){var e=d.clone.call(this);e._hash=this._hash.clone();return e}});g.SHA1=d._createHelper(l);g.HmacSHA1=d._createHmacHelper(l)})();
(function(){var g=CryptoJS,l=g.enc.Utf8;g.algo.HMAC=g.lib.Base.extend({init:function(e,d){e=this._hasher=new e.init;"string"==typeof d&&(d=l.parse(d));var g=e.blockSize,k=4*g;d.sigBytes>k&&(d=e.finalize(d));d.clamp();for(var p=this._oKey=d.clone(),b=this._iKey=d.clone(),n=p.words,j=b.words,h=0;h<g;h++)n[h]^=1549556828,j[h]^=909522486;p.sigBytes=b.sigBytes=k;this.reset()},reset:function(){var e=this._hasher;e.reset();e.update(this._iKey)},update:function(e){this._hasher.update(e);return this},finalize:function(e){var d=
this._hasher;e=d.finalize(e);d.reset();return d.finalize(this._oKey.clone().concat(e))}})})();

View File

@@ -0,0 +1,19 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(j,k){var c={},e=c.lib={},p=function(){},m=e.Base={extend:function(a){p.prototype=this;var d=new p;a&&d.mixIn(a);d.hasOwnProperty("init")||(d.init=function(){d.$super.init.apply(this,arguments)});d.init.prototype=d;d.$super=this;return d},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var d in a)a.hasOwnProperty(d)&&(this[d]=a[d]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
r=e.WordArray=m.extend({init:function(a,d){a=this.words=a||[];this.sigBytes=d!=k?d:4*a.length},toString:function(a){return(a||l).stringify(this)},concat:function(a){var d=this.words,f=a.words,b=this.sigBytes;a=a.sigBytes;this.clamp();if(b%4)for(var g=0;g<a;g++)d[b+g>>>2]|=(f[g>>>2]>>>24-8*(g%4)&255)<<24-8*((b+g)%4);else if(65535<f.length)for(g=0;g<a;g+=4)d[b+g>>>2]=f[g>>>2];else d.push.apply(d,f);this.sigBytes+=a;return this},clamp:function(){var a=this.words,d=this.sigBytes;a[d>>>2]&=4294967295<<
32-8*(d%4);a.length=j.ceil(d/4)},clone:function(){var a=m.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var d=[],f=0;f<a;f+=4)d.push(4294967296*j.random()|0);return new r.init(d,a)}}),s=c.enc={},l=s.Hex={stringify:function(a){var d=a.words;a=a.sigBytes;for(var f=[],b=0;b<a;b++){var g=d[b>>>2]>>>24-8*(b%4)&255;f.push((g>>>4).toString(16));f.push((g&15).toString(16))}return f.join("")},parse:function(a){for(var d=a.length,f=[],b=0;b<d;b+=2)f[b>>>3]|=parseInt(a.substr(b,
2),16)<<24-4*(b%8);return new r.init(f,d/2)}},n=s.Latin1={stringify:function(a){var d=a.words;a=a.sigBytes;for(var f=[],b=0;b<a;b++)f.push(String.fromCharCode(d[b>>>2]>>>24-8*(b%4)&255));return f.join("")},parse:function(a){for(var d=a.length,f=[],b=0;b<d;b++)f[b>>>2]|=(a.charCodeAt(b)&255)<<24-8*(b%4);return new r.init(f,d)}},h=s.Utf8={stringify:function(a){try{return decodeURIComponent(escape(n.stringify(a)))}catch(d){throw Error("Malformed UTF-8 data");}},parse:function(a){return n.parse(unescape(encodeURIComponent(a)))}},
u=e.BufferedBlockAlgorithm=m.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=h.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var d=this._data,f=d.words,b=d.sigBytes,g=this.blockSize,c=b/(4*g),c=a?j.ceil(c):j.max((c|0)-this._minBufferSize,0);a=c*g;b=j.min(4*a,b);if(a){for(var e=0;e<a;e+=g)this._doProcessBlock(f,e);e=f.splice(0,a);d.sigBytes-=b}return new r.init(e,b)},clone:function(){var a=m.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});e.Hasher=u.extend({cfg:m.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){u.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(d,f){return(new a.init(f)).finalize(d)}},_createHmacHelper:function(a){return function(d,f){return(new t.HMAC.init(a,
f)).finalize(d)}}});var t=c.algo={};return c}(Math);
(function(j){for(var k=CryptoJS,c=k.lib,e=c.WordArray,p=c.Hasher,c=k.algo,m=[],r=[],s=function(a){return 4294967296*(a-(a|0))|0},l=2,n=0;64>n;){var h;a:{h=l;for(var u=j.sqrt(h),t=2;t<=u;t++)if(!(h%t)){h=!1;break a}h=!0}h&&(8>n&&(m[n]=s(j.pow(l,0.5))),r[n]=s(j.pow(l,1/3)),n++);l++}var a=[],c=c.SHA256=p.extend({_doReset:function(){this._hash=new e.init(m.slice(0))},_doProcessBlock:function(d,f){for(var b=this._hash.words,g=b[0],c=b[1],e=b[2],j=b[3],h=b[4],p=b[5],m=b[6],n=b[7],q=0;64>q;q++){if(16>q)a[q]=
d[f+q]|0;else{var k=a[q-15],l=a[q-2];a[q]=((k<<25|k>>>7)^(k<<14|k>>>18)^k>>>3)+a[q-7]+((l<<15|l>>>17)^(l<<13|l>>>19)^l>>>10)+a[q-16]}k=n+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&p^~h&m)+r[q]+a[q];l=((g<<30|g>>>2)^(g<<19|g>>>13)^(g<<10|g>>>22))+(g&c^g&e^c&e);n=m;m=p;p=h;h=j+k|0;j=e;e=c;c=g;g=k+l|0}b[0]=b[0]+g|0;b[1]=b[1]+c|0;b[2]=b[2]+e|0;b[3]=b[3]+j|0;b[4]=b[4]+h|0;b[5]=b[5]+p|0;b[6]=b[6]+m|0;b[7]=b[7]+n|0},_doFinalize:function(){var a=this._data,c=a.words,b=8*this._nDataBytes,e=8*a.sigBytes;
c[e>>>5]|=128<<24-e%32;c[(e+64>>>9<<4)+14]=j.floor(b/4294967296);c[(e+64>>>9<<4)+15]=b;a.sigBytes=4*c.length;this._process();return this._hash},clone:function(){var a=p.clone.call(this);a._hash=this._hash.clone();return a}});k.SHA256=p._createHelper(c);k.HmacSHA256=p._createHmacHelper(c)})(Math);
(function(){var j=CryptoJS,k=j.lib.WordArray,c=j.algo,e=c.SHA256,c=c.SHA224=e.extend({_doReset:function(){this._hash=new k.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var c=e._doFinalize.call(this);c.sigBytes-=4;return c}});j.SHA224=e._createHelper(c);j.HmacSHA224=e._createHmacHelper(c)})();
(function(){var j=CryptoJS,k=j.enc.Utf8;j.algo.HMAC=j.lib.Base.extend({init:function(c,e){c=this._hasher=new c.init;"string"==typeof e&&(e=k.parse(e));var j=c.blockSize,m=4*j;e.sigBytes>m&&(e=c.finalize(e));e.clamp();for(var r=this._oKey=e.clone(),s=this._iKey=e.clone(),l=r.words,n=s.words,h=0;h<j;h++)l[h]^=1549556828,n[h]^=909522486;r.sigBytes=s.sigBytes=m;this.reset()},reset:function(){var c=this._hasher;c.reset();c.update(this._iKey)},update:function(c){this._hasher.update(c);return this},finalize:function(c){var e=
this._hasher;c=e.finalize(c);e.reset();return e.finalize(this._oKey.clone().concat(c))}})})();

View File

@@ -0,0 +1,18 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(h,s){var f={},g=f.lib={},q=function(){},m=g.Base={extend:function(a){q.prototype=this;var c=new q;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
r=g.WordArray=m.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=s?c:4*a.length},toString:function(a){return(a||k).stringify(this)},concat:function(a){var c=this.words,d=a.words,b=this.sigBytes;a=a.sigBytes;this.clamp();if(b%4)for(var e=0;e<a;e++)c[b+e>>>2]|=(d[e>>>2]>>>24-8*(e%4)&255)<<24-8*((b+e)%4);else if(65535<d.length)for(e=0;e<a;e+=4)c[b+e>>>2]=d[e>>>2];else c.push.apply(c,d);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
32-8*(c%4);a.length=h.ceil(c/4)},clone:function(){var a=m.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],d=0;d<a;d+=4)c.push(4294967296*h.random()|0);return new r.init(c,a)}}),l=f.enc={},k=l.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var d=[],b=0;b<a;b++){var e=c[b>>>2]>>>24-8*(b%4)&255;d.push((e>>>4).toString(16));d.push((e&15).toString(16))}return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b<c;b+=2)d[b>>>3]|=parseInt(a.substr(b,
2),16)<<24-4*(b%8);return new r.init(d,c/2)}},n=l.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var d=[],b=0;b<a;b++)d.push(String.fromCharCode(c[b>>>2]>>>24-8*(b%4)&255));return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b<c;b++)d[b>>>2]|=(a.charCodeAt(b)&255)<<24-8*(b%4);return new r.init(d,c)}},j=l.Utf8={stringify:function(a){try{return decodeURIComponent(escape(n.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return n.parse(unescape(encodeURIComponent(a)))}},
u=g.BufferedBlockAlgorithm=m.extend({reset:function(){this._data=new r.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=j.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,d=c.words,b=c.sigBytes,e=this.blockSize,f=b/(4*e),f=a?h.ceil(f):h.max((f|0)-this._minBufferSize,0);a=f*e;b=h.min(4*a,b);if(a){for(var g=0;g<a;g+=e)this._doProcessBlock(d,g);g=d.splice(0,a);c.sigBytes-=b}return new r.init(g,b)},clone:function(){var a=m.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});g.Hasher=u.extend({cfg:m.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){u.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(c,d){return(new a.init(d)).finalize(c)}},_createHmacHelper:function(a){return function(c,d){return(new t.HMAC.init(a,
d)).finalize(c)}}});var t=f.algo={};return f}(Math);
(function(h){for(var s=CryptoJS,f=s.lib,g=f.WordArray,q=f.Hasher,f=s.algo,m=[],r=[],l=function(a){return 4294967296*(a-(a|0))|0},k=2,n=0;64>n;){var j;a:{j=k;for(var u=h.sqrt(j),t=2;t<=u;t++)if(!(j%t)){j=!1;break a}j=!0}j&&(8>n&&(m[n]=l(h.pow(k,0.5))),r[n]=l(h.pow(k,1/3)),n++);k++}var a=[],f=f.SHA256=q.extend({_doReset:function(){this._hash=new g.init(m.slice(0))},_doProcessBlock:function(c,d){for(var b=this._hash.words,e=b[0],f=b[1],g=b[2],j=b[3],h=b[4],m=b[5],n=b[6],q=b[7],p=0;64>p;p++){if(16>p)a[p]=
c[d+p]|0;else{var k=a[p-15],l=a[p-2];a[p]=((k<<25|k>>>7)^(k<<14|k>>>18)^k>>>3)+a[p-7]+((l<<15|l>>>17)^(l<<13|l>>>19)^l>>>10)+a[p-16]}k=q+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&m^~h&n)+r[p]+a[p];l=((e<<30|e>>>2)^(e<<19|e>>>13)^(e<<10|e>>>22))+(e&f^e&g^f&g);q=n;n=m;m=h;h=j+k|0;j=g;g=f;f=e;e=k+l|0}b[0]=b[0]+e|0;b[1]=b[1]+f|0;b[2]=b[2]+g|0;b[3]=b[3]+j|0;b[4]=b[4]+h|0;b[5]=b[5]+m|0;b[6]=b[6]+n|0;b[7]=b[7]+q|0},_doFinalize:function(){var a=this._data,d=a.words,b=8*this._nDataBytes,e=8*a.sigBytes;
d[e>>>5]|=128<<24-e%32;d[(e+64>>>9<<4)+14]=h.floor(b/4294967296);d[(e+64>>>9<<4)+15]=b;a.sigBytes=4*d.length;this._process();return this._hash},clone:function(){var a=q.clone.call(this);a._hash=this._hash.clone();return a}});s.SHA256=q._createHelper(f);s.HmacSHA256=q._createHmacHelper(f)})(Math);
(function(){var h=CryptoJS,s=h.enc.Utf8;h.algo.HMAC=h.lib.Base.extend({init:function(f,g){f=this._hasher=new f.init;"string"==typeof g&&(g=s.parse(g));var h=f.blockSize,m=4*h;g.sigBytes>m&&(g=f.finalize(g));g.clamp();for(var r=this._oKey=g.clone(),l=this._iKey=g.clone(),k=r.words,n=l.words,j=0;j<h;j++)k[j]^=1549556828,n[j]^=909522486;r.sigBytes=l.sigBytes=m;this.reset()},reset:function(){var f=this._hasher;f.reset();f.update(this._iKey)},update:function(f){this._hasher.update(f);return this},finalize:function(f){var g=
this._hasher;f=g.finalize(f);g.reset();return g.finalize(this._oKey.clone().concat(f))}})})();

View File

@@ -0,0 +1,21 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(q,f){var c={},d=c.lib={},v=function(){},s=d.Base={extend:function(a){v.prototype=this;var b=new v;a&&b.mixIn(a);b.hasOwnProperty("init")||(b.init=function(){b.$super.init.apply(this,arguments)});b.init.prototype=b;b.$super=this;return b},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
t=d.WordArray=s.extend({init:function(a,b){a=this.words=a||[];this.sigBytes=b!=f?b:4*a.length},toString:function(a){return(a||r).stringify(this)},concat:function(a){var b=this.words,e=a.words,j=this.sigBytes;a=a.sigBytes;this.clamp();if(j%4)for(var p=0;p<a;p++)b[j+p>>>2]|=(e[p>>>2]>>>24-8*(p%4)&255)<<24-8*((j+p)%4);else if(65535<e.length)for(p=0;p<a;p+=4)b[j+p>>>2]=e[p>>>2];else b.push.apply(b,e);this.sigBytes+=a;return this},clamp:function(){var a=this.words,b=this.sigBytes;a[b>>>2]&=4294967295<<
32-8*(b%4);a.length=q.ceil(b/4)},clone:function(){var a=s.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var b=[],e=0;e<a;e+=4)b.push(4294967296*q.random()|0);return new t.init(b,a)}}),w=c.enc={},r=w.Hex={stringify:function(a){var b=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++){var p=b[j>>>2]>>>24-8*(j%4)&255;e.push((p>>>4).toString(16));e.push((p&15).toString(16))}return e.join("")},parse:function(a){for(var b=a.length,e=[],j=0;j<b;j+=2)e[j>>>3]|=parseInt(a.substr(j,
2),16)<<24-4*(j%8);return new t.init(e,b/2)}},g=w.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++)e.push(String.fromCharCode(b[j>>>2]>>>24-8*(j%4)&255));return e.join("")},parse:function(a){for(var b=a.length,e=[],j=0;j<b;j++)e[j>>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new t.init(e,b)}},n=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(g.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return g.parse(unescape(encodeURIComponent(a)))}},
u=d.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new t.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=n.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var b=this._data,e=b.words,j=b.sigBytes,p=this.blockSize,c=j/(4*p),c=a?q.ceil(c):q.max((c|0)-this._minBufferSize,0);a=c*p;j=q.min(4*a,j);if(a){for(var g=0;g<a;g+=p)this._doProcessBlock(e,g);g=e.splice(0,a);b.sigBytes-=j}return new t.init(g,j)},clone:function(){var a=s.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});d.Hasher=u.extend({cfg:s.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){u.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createHmacHelper:function(a){return function(b,e){return(new x.HMAC.init(a,
e)).finalize(b)}}});var x=c.algo={};return c}(Math);
(function(q){var f=CryptoJS,c=f.lib,d=c.Base,v=c.WordArray,f=f.x64={};f.Word=d.extend({init:function(c,d){this.high=c;this.low=d}});f.WordArray=d.extend({init:function(c,d){c=this.words=c||[];this.sigBytes=d!=q?d:8*c.length},toX32:function(){for(var c=this.words,d=c.length,f=[],r=0;r<d;r++){var g=c[r];f.push(g.high);f.push(g.low)}return v.create(f,this.sigBytes)},clone:function(){for(var c=d.clone.call(this),f=c.words=this.words.slice(0),q=f.length,r=0;r<q;r++)f[r]=f[r].clone();return c}})})();
(function(q){for(var f=CryptoJS,c=f.lib,d=c.WordArray,v=c.Hasher,s=f.x64.Word,c=f.algo,t=[],w=[],r=[],g=1,n=0,u=0;24>u;u++){t[g+5*n]=(u+1)*(u+2)/2%64;var x=(2*g+3*n)%5,g=n%5,n=x}for(g=0;5>g;g++)for(n=0;5>n;n++)w[g+5*n]=n+5*((2*g+3*n)%5);g=1;for(n=0;24>n;n++){for(var a=x=u=0;7>a;a++){if(g&1){var b=(1<<a)-1;32>b?x^=1<<b:u^=1<<b-32}g=g&128?g<<1^113:g<<1}r[n]=s.create(u,x)}for(var e=[],g=0;25>g;g++)e[g]=s.create();c=c.SHA3=v.extend({cfg:v.cfg.extend({outputLength:512}),_doReset:function(){for(var a=this._state=
[],b=0;25>b;b++)a[b]=new s.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(a,b){for(var c=this._state,g=this.blockSize/2,k=0;k<g;k++){var d=a[b+2*k],l=a[b+2*k+1],d=(d<<8|d>>>24)&16711935|(d<<24|d>>>8)&4278255360,l=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360,h=c[k];h.high^=l;h.low^=d}for(g=0;24>g;g++){for(k=0;5>k;k++){for(var f=d=0,m=0;5>m;m++)h=c[k+5*m],d^=h.high,f^=h.low;h=e[k];h.high=d;h.low=f}for(k=0;5>k;k++){h=e[(k+4)%5];d=e[(k+1)%5];l=d.high;m=d.low;d=h.high^
(l<<1|m>>>31);f=h.low^(m<<1|l>>>31);for(m=0;5>m;m++)h=c[k+5*m],h.high^=d,h.low^=f}for(l=1;25>l;l++)h=c[l],k=h.high,h=h.low,m=t[l],32>m?(d=k<<m|h>>>32-m,f=h<<m|k>>>32-m):(d=h<<m-32|k>>>64-m,f=k<<m-32|h>>>64-m),h=e[w[l]],h.high=d,h.low=f;h=e[0];k=c[0];h.high=k.high;h.low=k.low;for(k=0;5>k;k++)for(m=0;5>m;m++)l=k+5*m,h=c[l],d=e[l],l=e[(k+1)%5+5*m],f=e[(k+2)%5+5*m],h.high=d.high^~l.high&f.high,h.low=d.low^~l.low&f.low;h=c[0];k=r[g];h.high^=k.high;h.low^=k.low}},_doFinalize:function(){var a=this._data,
b=a.words,c=8*a.sigBytes,e=32*this.blockSize;b[c>>>5]|=1<<24-c%32;b[(q.ceil((c+1)/e)*e>>>5)-1]|=128;a.sigBytes=4*b.length;this._process();for(var a=this._state,b=this.cfg.outputLength/8,c=b/8,e=[],g=0;g<c;g++){var f=a[g],l=f.high,f=f.low,l=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360,f=(f<<8|f>>>24)&16711935|(f<<24|f>>>8)&4278255360;e.push(f);e.push(l)}return new d.init(e,b)},clone:function(){for(var a=v.clone.call(this),b=a._state=this._state.slice(0),c=0;25>c;c++)b[c]=b[c].clone();return a}});
f.SHA3=v._createHelper(c);f.HmacSHA3=v._createHmacHelper(c)})(Math);
(function(){var q=CryptoJS,f=q.enc.Utf8;q.algo.HMAC=q.lib.Base.extend({init:function(c,d){c=this._hasher=new c.init;"string"==typeof d&&(d=f.parse(d));var q=c.blockSize,s=4*q;d.sigBytes>s&&(d=c.finalize(d));d.clamp();for(var t=this._oKey=d.clone(),w=this._iKey=d.clone(),r=t.words,g=w.words,n=0;n<q;n++)r[n]^=1549556828,g[n]^=909522486;t.sigBytes=w.sigBytes=s;this.reset()},reset:function(){var c=this._hasher;c.reset();c.update(this._iKey)},update:function(c){this._hasher.update(c);return this},finalize:function(c){var d=
this._hasher;c=d.finalize(c);d.reset();return d.finalize(this._oKey.clone().concat(c))}})})();

View File

@@ -0,0 +1,27 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(a,d){var c={},b=c.lib={},f=function(){},l=b.Base={extend:function(a){f.prototype=this;var g=new f;a&&g.mixIn(a);g.hasOwnProperty("init")||(g.init=function(){g.$super.init.apply(this,arguments)});g.init.prototype=g;g.$super=this;return g},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var g in a)a.hasOwnProperty(g)&&(this[g]=a[g]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
u=b.WordArray=l.extend({init:function(a,g){a=this.words=a||[];this.sigBytes=g!=d?g:4*a.length},toString:function(a){return(a||m).stringify(this)},concat:function(a){var g=this.words,c=a.words,e=this.sigBytes;a=a.sigBytes;this.clamp();if(e%4)for(var b=0;b<a;b++)g[e+b>>>2]|=(c[b>>>2]>>>24-8*(b%4)&255)<<24-8*((e+b)%4);else if(65535<c.length)for(b=0;b<a;b+=4)g[e+b>>>2]=c[b>>>2];else g.push.apply(g,c);this.sigBytes+=a;return this},clamp:function(){var C=this.words,g=this.sigBytes;C[g>>>2]&=4294967295<<
32-8*(g%4);C.length=a.ceil(g/4)},clone:function(){var a=l.clone.call(this);a.words=this.words.slice(0);return a},random:function(C){for(var g=[],b=0;b<C;b+=4)g.push(4294967296*a.random()|0);return new u.init(g,C)}}),k=c.enc={},m=k.Hex={stringify:function(a){var g=a.words;a=a.sigBytes;for(var b=[],e=0;e<a;e++){var c=g[e>>>2]>>>24-8*(e%4)&255;b.push((c>>>4).toString(16));b.push((c&15).toString(16))}return b.join("")},parse:function(a){for(var b=a.length,c=[],e=0;e<b;e+=2)c[e>>>3]|=parseInt(a.substr(e,
2),16)<<24-4*(e%8);return new u.init(c,b/2)}},x=k.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var c=[],e=0;e<a;e++)c.push(String.fromCharCode(b[e>>>2]>>>24-8*(e%4)&255));return c.join("")},parse:function(a){for(var b=a.length,c=[],e=0;e<b;e++)c[e>>>2]|=(a.charCodeAt(e)&255)<<24-8*(e%4);return new u.init(c,b)}},y=k.Utf8={stringify:function(a){try{return decodeURIComponent(escape(x.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return x.parse(unescape(encodeURIComponent(a)))}},
$=b.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new u.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=y.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(b){var c=this._data,l=c.words,e=c.sigBytes,d=this.blockSize,f=e/(4*d),f=b?a.ceil(f):a.max((f|0)-this._minBufferSize,0);b=f*d;e=a.min(4*b,e);if(b){for(var k=0;k<b;k+=d)this._doProcessBlock(l,k);k=l.splice(0,b);c.sigBytes-=e}return new u.init(k,e)},clone:function(){var a=l.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});b.Hasher=$.extend({cfg:l.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){$.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,c){return(new a.init(c)).finalize(b)}},_createHmacHelper:function(a){return function(b,c){return(new ia.HMAC.init(a,
c)).finalize(b)}}});var ia=c.algo={};return c}(Math);
(function(a){var d=CryptoJS,c=d.lib,b=c.Base,f=c.WordArray,d=d.x64={};d.Word=b.extend({init:function(a,b){this.high=a;this.low=b}});d.WordArray=b.extend({init:function(b,c){b=this.words=b||[];this.sigBytes=c!=a?c:8*b.length},toX32:function(){for(var a=this.words,b=a.length,c=[],d=0;d<b;d++){var x=a[d];c.push(x.high);c.push(x.low)}return f.create(c,this.sigBytes)},clone:function(){for(var a=b.clone.call(this),c=a.words=this.words.slice(0),d=c.length,f=0;f<d;f++)c[f]=c[f].clone();return a}})})();
(function(){function a(){return f.create.apply(f,arguments)}for(var d=CryptoJS,c=d.lib.Hasher,b=d.x64,f=b.Word,l=b.WordArray,b=d.algo,u=[a(1116352408,3609767458),a(1899447441,602891725),a(3049323471,3964484399),a(3921009573,2173295548),a(961987163,4081628472),a(1508970993,3053834265),a(2453635748,2937671579),a(2870763221,3664609560),a(3624381080,2734883394),a(310598401,1164996542),a(607225278,1323610764),a(1426881987,3590304994),a(1925078388,4068182383),a(2162078206,991336113),a(2614888103,633803317),
a(3248222580,3479774868),a(3835390401,2666613458),a(4022224774,944711139),a(264347078,2341262773),a(604807628,2007800933),a(770255983,1495990901),a(1249150122,1856431235),a(1555081692,3175218132),a(1996064986,2198950837),a(2554220882,3999719339),a(2821834349,766784016),a(2952996808,2566594879),a(3210313671,3203337956),a(3336571891,1034457026),a(3584528711,2466948901),a(113926993,3758326383),a(338241895,168717936),a(666307205,1188179964),a(773529912,1546045734),a(1294757372,1522805485),a(1396182291,
2643833823),a(1695183700,2343527390),a(1986661051,1014477480),a(2177026350,1206759142),a(2456956037,344077627),a(2730485921,1290863460),a(2820302411,3158454273),a(3259730800,3505952657),a(3345764771,106217008),a(3516065817,3606008344),a(3600352804,1432725776),a(4094571909,1467031594),a(275423344,851169720),a(430227734,3100823752),a(506948616,1363258195),a(659060556,3750685593),a(883997877,3785050280),a(958139571,3318307427),a(1322822218,3812723403),a(1537002063,2003034995),a(1747873779,3602036899),
a(1955562222,1575990012),a(2024104815,1125592928),a(2227730452,2716904306),a(2361852424,442776044),a(2428436474,593698344),a(2756734187,3733110249),a(3204031479,2999351573),a(3329325298,3815920427),a(3391569614,3928383900),a(3515267271,566280711),a(3940187606,3454069534),a(4118630271,4000239992),a(116418474,1914138554),a(174292421,2731055270),a(289380356,3203993006),a(460393269,320620315),a(685471733,587496836),a(852142971,1086792851),a(1017036298,365543100),a(1126000580,2618297676),a(1288033470,
3409855158),a(1501505948,4234509866),a(1607167915,987167468),a(1816402316,1246189591)],k=[],m=0;80>m;m++)k[m]=a();b=b.SHA512=c.extend({_doReset:function(){this._hash=new l.init([new f.init(1779033703,4089235720),new f.init(3144134277,2227873595),new f.init(1013904242,4271175723),new f.init(2773480762,1595750129),new f.init(1359893119,2917565137),new f.init(2600822924,725511199),new f.init(528734635,4215389547),new f.init(1541459225,327033209)])},_doProcessBlock:function(a,b){for(var c=this._hash.words,
d=c[0],f=c[1],g=c[2],l=c[3],e=c[4],m=c[5],L=c[6],c=c[7],Z=d.high,M=d.low,aa=f.high,N=f.low,ba=g.high,O=g.low,ca=l.high,P=l.low,da=e.high,Q=e.low,ea=m.high,R=m.low,fa=L.high,S=L.low,ga=c.high,T=c.low,r=Z,n=M,F=aa,D=N,G=ba,E=O,W=ca,H=P,s=da,p=Q,U=ea,I=R,V=fa,J=S,X=ga,K=T,t=0;80>t;t++){var z=k[t];if(16>t)var q=z.high=a[b+2*t]|0,h=z.low=a[b+2*t+1]|0;else{var q=k[t-15],h=q.high,v=q.low,q=(h>>>1|v<<31)^(h>>>8|v<<24)^h>>>7,v=(v>>>1|h<<31)^(v>>>8|h<<24)^(v>>>7|h<<25),B=k[t-2],h=B.high,j=B.low,B=(h>>>19|j<<
13)^(h<<3|j>>>29)^h>>>6,j=(j>>>19|h<<13)^(j<<3|h>>>29)^(j>>>6|h<<26),h=k[t-7],Y=h.high,A=k[t-16],w=A.high,A=A.low,h=v+h.low,q=q+Y+(h>>>0<v>>>0?1:0),h=h+j,q=q+B+(h>>>0<j>>>0?1:0),h=h+A,q=q+w+(h>>>0<A>>>0?1:0);z.high=q;z.low=h}var Y=s&U^~s&V,A=p&I^~p&J,z=r&F^r&G^F&G,ja=n&D^n&E^D&E,v=(r>>>28|n<<4)^(r<<30|n>>>2)^(r<<25|n>>>7),B=(n>>>28|r<<4)^(n<<30|r>>>2)^(n<<25|r>>>7),j=u[t],ka=j.high,ha=j.low,j=K+((p>>>14|s<<18)^(p>>>18|s<<14)^(p<<23|s>>>9)),w=X+((s>>>14|p<<18)^(s>>>18|p<<14)^(s<<23|p>>>9))+(j>>>0<
K>>>0?1:0),j=j+A,w=w+Y+(j>>>0<A>>>0?1:0),j=j+ha,w=w+ka+(j>>>0<ha>>>0?1:0),j=j+h,w=w+q+(j>>>0<h>>>0?1:0),h=B+ja,z=v+z+(h>>>0<B>>>0?1:0),X=V,K=J,V=U,J=I,U=s,I=p,p=H+j|0,s=W+w+(p>>>0<H>>>0?1:0)|0,W=G,H=E,G=F,E=D,F=r,D=n,n=j+h|0,r=w+z+(n>>>0<j>>>0?1:0)|0}M=d.low=M+n;d.high=Z+r+(M>>>0<n>>>0?1:0);N=f.low=N+D;f.high=aa+F+(N>>>0<D>>>0?1:0);O=g.low=O+E;g.high=ba+G+(O>>>0<E>>>0?1:0);P=l.low=P+H;l.high=ca+W+(P>>>0<H>>>0?1:0);Q=e.low=Q+p;e.high=da+s+(Q>>>0<p>>>0?1:0);R=m.low=R+I;m.high=ea+U+(R>>>0<I>>>0?1:0);
S=L.low=S+J;L.high=fa+V+(S>>>0<J>>>0?1:0);T=c.low=T+K;c.high=ga+X+(T>>>0<K>>>0?1:0)},_doFinalize:function(){var a=this._data,c=a.words,b=8*this._nDataBytes,d=8*a.sigBytes;c[d>>>5]|=128<<24-d%32;c[(d+128>>>10<<5)+30]=Math.floor(b/4294967296);c[(d+128>>>10<<5)+31]=b;a.sigBytes=4*c.length;this._process();return this._hash.toX32()},clone:function(){var a=c.clone.call(this);a._hash=this._hash.clone();return a},blockSize:32});d.SHA512=c._createHelper(b);d.HmacSHA512=c._createHmacHelper(b)})();
(function(){var a=CryptoJS,d=a.x64,c=d.Word,b=d.WordArray,d=a.algo,f=d.SHA512,d=d.SHA384=f.extend({_doReset:function(){this._hash=new b.init([new c.init(3418070365,3238371032),new c.init(1654270250,914150663),new c.init(2438529370,812702999),new c.init(355462360,4144912697),new c.init(1731405415,4290775857),new c.init(2394180231,1750603025),new c.init(3675008525,1694076839),new c.init(1203062813,3204075428)])},_doFinalize:function(){var a=f._doFinalize.call(this);a.sigBytes-=16;return a}});a.SHA384=
f._createHelper(d);a.HmacSHA384=f._createHmacHelper(d)})();
(function(){var a=CryptoJS,d=a.enc.Utf8;a.algo.HMAC=a.lib.Base.extend({init:function(a,b){a=this._hasher=new a.init;"string"==typeof b&&(b=d.parse(b));var f=a.blockSize,l=4*f;b.sigBytes>l&&(b=a.finalize(b));b.clamp();for(var u=this._oKey=b.clone(),k=this._iKey=b.clone(),m=u.words,x=k.words,y=0;y<f;y++)m[y]^=1549556828,x[y]^=909522486;u.sigBytes=k.sigBytes=l;this.reset()},reset:function(){var a=this._hasher;a.reset();a.update(this._iKey)},update:function(a){this._hasher.update(a);return this},finalize:function(a){var b=
this._hasher;a=b.finalize(a);b.reset();return b.finalize(this._oKey.clone().concat(a))}})})();

View File

@@ -0,0 +1,25 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(a,j){var c={},b=c.lib={},f=function(){},l=b.Base={extend:function(a){f.prototype=this;var d=new f;a&&d.mixIn(a);d.hasOwnProperty("init")||(d.init=function(){d.$super.init.apply(this,arguments)});d.init.prototype=d;d.$super=this;return d},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var d in a)a.hasOwnProperty(d)&&(this[d]=a[d]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
u=b.WordArray=l.extend({init:function(a,d){a=this.words=a||[];this.sigBytes=d!=j?d:4*a.length},toString:function(a){return(a||m).stringify(this)},concat:function(a){var d=this.words,M=a.words,e=this.sigBytes;a=a.sigBytes;this.clamp();if(e%4)for(var b=0;b<a;b++)d[e+b>>>2]|=(M[b>>>2]>>>24-8*(b%4)&255)<<24-8*((e+b)%4);else if(65535<M.length)for(b=0;b<a;b+=4)d[e+b>>>2]=M[b>>>2];else d.push.apply(d,M);this.sigBytes+=a;return this},clamp:function(){var D=this.words,d=this.sigBytes;D[d>>>2]&=4294967295<<
32-8*(d%4);D.length=a.ceil(d/4)},clone:function(){var a=l.clone.call(this);a.words=this.words.slice(0);return a},random:function(D){for(var d=[],b=0;b<D;b+=4)d.push(4294967296*a.random()|0);return new u.init(d,D)}}),k=c.enc={},m=k.Hex={stringify:function(a){var d=a.words;a=a.sigBytes;for(var b=[],e=0;e<a;e++){var c=d[e>>>2]>>>24-8*(e%4)&255;b.push((c>>>4).toString(16));b.push((c&15).toString(16))}return b.join("")},parse:function(a){for(var d=a.length,b=[],e=0;e<d;e+=2)b[e>>>3]|=parseInt(a.substr(e,
2),16)<<24-4*(e%8);return new u.init(b,d/2)}},y=k.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var c=[],e=0;e<a;e++)c.push(String.fromCharCode(b[e>>>2]>>>24-8*(e%4)&255));return c.join("")},parse:function(a){for(var b=a.length,c=[],e=0;e<b;e++)c[e>>>2]|=(a.charCodeAt(e)&255)<<24-8*(e%4);return new u.init(c,b)}},z=k.Utf8={stringify:function(a){try{return decodeURIComponent(escape(y.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return y.parse(unescape(encodeURIComponent(a)))}},
x=b.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new u.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=z.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(b){var d=this._data,c=d.words,e=d.sigBytes,l=this.blockSize,k=e/(4*l),k=b?a.ceil(k):a.max((k|0)-this._minBufferSize,0);b=k*l;e=a.min(4*b,e);if(b){for(var x=0;x<b;x+=l)this._doProcessBlock(c,x);x=c.splice(0,b);d.sigBytes-=e}return new u.init(x,e)},clone:function(){var a=l.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});b.Hasher=x.extend({cfg:l.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){x.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,c){return(new a.init(c)).finalize(b)}},_createHmacHelper:function(a){return function(b,c){return(new ja.HMAC.init(a,
c)).finalize(b)}}});var ja=c.algo={};return c}(Math);
(function(a){var j=CryptoJS,c=j.lib,b=c.Base,f=c.WordArray,j=j.x64={};j.Word=b.extend({init:function(a,b){this.high=a;this.low=b}});j.WordArray=b.extend({init:function(b,c){b=this.words=b||[];this.sigBytes=c!=a?c:8*b.length},toX32:function(){for(var a=this.words,b=a.length,c=[],m=0;m<b;m++){var y=a[m];c.push(y.high);c.push(y.low)}return f.create(c,this.sigBytes)},clone:function(){for(var a=b.clone.call(this),c=a.words=this.words.slice(0),k=c.length,f=0;f<k;f++)c[f]=c[f].clone();return a}})})();
(function(){function a(){return f.create.apply(f,arguments)}for(var j=CryptoJS,c=j.lib.Hasher,b=j.x64,f=b.Word,l=b.WordArray,b=j.algo,u=[a(1116352408,3609767458),a(1899447441,602891725),a(3049323471,3964484399),a(3921009573,2173295548),a(961987163,4081628472),a(1508970993,3053834265),a(2453635748,2937671579),a(2870763221,3664609560),a(3624381080,2734883394),a(310598401,1164996542),a(607225278,1323610764),a(1426881987,3590304994),a(1925078388,4068182383),a(2162078206,991336113),a(2614888103,633803317),
a(3248222580,3479774868),a(3835390401,2666613458),a(4022224774,944711139),a(264347078,2341262773),a(604807628,2007800933),a(770255983,1495990901),a(1249150122,1856431235),a(1555081692,3175218132),a(1996064986,2198950837),a(2554220882,3999719339),a(2821834349,766784016),a(2952996808,2566594879),a(3210313671,3203337956),a(3336571891,1034457026),a(3584528711,2466948901),a(113926993,3758326383),a(338241895,168717936),a(666307205,1188179964),a(773529912,1546045734),a(1294757372,1522805485),a(1396182291,
2643833823),a(1695183700,2343527390),a(1986661051,1014477480),a(2177026350,1206759142),a(2456956037,344077627),a(2730485921,1290863460),a(2820302411,3158454273),a(3259730800,3505952657),a(3345764771,106217008),a(3516065817,3606008344),a(3600352804,1432725776),a(4094571909,1467031594),a(275423344,851169720),a(430227734,3100823752),a(506948616,1363258195),a(659060556,3750685593),a(883997877,3785050280),a(958139571,3318307427),a(1322822218,3812723403),a(1537002063,2003034995),a(1747873779,3602036899),
a(1955562222,1575990012),a(2024104815,1125592928),a(2227730452,2716904306),a(2361852424,442776044),a(2428436474,593698344),a(2756734187,3733110249),a(3204031479,2999351573),a(3329325298,3815920427),a(3391569614,3928383900),a(3515267271,566280711),a(3940187606,3454069534),a(4118630271,4000239992),a(116418474,1914138554),a(174292421,2731055270),a(289380356,3203993006),a(460393269,320620315),a(685471733,587496836),a(852142971,1086792851),a(1017036298,365543100),a(1126000580,2618297676),a(1288033470,
3409855158),a(1501505948,4234509866),a(1607167915,987167468),a(1816402316,1246189591)],k=[],m=0;80>m;m++)k[m]=a();b=b.SHA512=c.extend({_doReset:function(){this._hash=new l.init([new f.init(1779033703,4089235720),new f.init(3144134277,2227873595),new f.init(1013904242,4271175723),new f.init(2773480762,1595750129),new f.init(1359893119,2917565137),new f.init(2600822924,725511199),new f.init(528734635,4215389547),new f.init(1541459225,327033209)])},_doProcessBlock:function(a,b){for(var c=this._hash.words,
f=c[0],j=c[1],d=c[2],l=c[3],e=c[4],m=c[5],N=c[6],c=c[7],aa=f.high,O=f.low,ba=j.high,P=j.low,ca=d.high,Q=d.low,da=l.high,R=l.low,ea=e.high,S=e.low,fa=m.high,T=m.low,ga=N.high,U=N.low,ha=c.high,V=c.low,r=aa,n=O,G=ba,E=P,H=ca,F=Q,Y=da,I=R,s=ea,p=S,W=fa,J=T,X=ga,K=U,Z=ha,L=V,t=0;80>t;t++){var A=k[t];if(16>t)var q=A.high=a[b+2*t]|0,g=A.low=a[b+2*t+1]|0;else{var q=k[t-15],g=q.high,v=q.low,q=(g>>>1|v<<31)^(g>>>8|v<<24)^g>>>7,v=(v>>>1|g<<31)^(v>>>8|g<<24)^(v>>>7|g<<25),C=k[t-2],g=C.high,h=C.low,C=(g>>>19|
h<<13)^(g<<3|h>>>29)^g>>>6,h=(h>>>19|g<<13)^(h<<3|g>>>29)^(h>>>6|g<<26),g=k[t-7],$=g.high,B=k[t-16],w=B.high,B=B.low,g=v+g.low,q=q+$+(g>>>0<v>>>0?1:0),g=g+h,q=q+C+(g>>>0<h>>>0?1:0),g=g+B,q=q+w+(g>>>0<B>>>0?1:0);A.high=q;A.low=g}var $=s&W^~s&X,B=p&J^~p&K,A=r&G^r&H^G&H,ka=n&E^n&F^E&F,v=(r>>>28|n<<4)^(r<<30|n>>>2)^(r<<25|n>>>7),C=(n>>>28|r<<4)^(n<<30|r>>>2)^(n<<25|r>>>7),h=u[t],la=h.high,ia=h.low,h=L+((p>>>14|s<<18)^(p>>>18|s<<14)^(p<<23|s>>>9)),w=Z+((s>>>14|p<<18)^(s>>>18|p<<14)^(s<<23|p>>>9))+(h>>>
0<L>>>0?1:0),h=h+B,w=w+$+(h>>>0<B>>>0?1:0),h=h+ia,w=w+la+(h>>>0<ia>>>0?1:0),h=h+g,w=w+q+(h>>>0<g>>>0?1:0),g=C+ka,A=v+A+(g>>>0<C>>>0?1:0),Z=X,L=K,X=W,K=J,W=s,J=p,p=I+h|0,s=Y+w+(p>>>0<I>>>0?1:0)|0,Y=H,I=F,H=G,F=E,G=r,E=n,n=h+g|0,r=w+A+(n>>>0<h>>>0?1:0)|0}O=f.low=O+n;f.high=aa+r+(O>>>0<n>>>0?1:0);P=j.low=P+E;j.high=ba+G+(P>>>0<E>>>0?1:0);Q=d.low=Q+F;d.high=ca+H+(Q>>>0<F>>>0?1:0);R=l.low=R+I;l.high=da+Y+(R>>>0<I>>>0?1:0);S=e.low=S+p;e.high=ea+s+(S>>>0<p>>>0?1:0);T=m.low=T+J;m.high=fa+W+(T>>>0<J>>>0?1:
0);U=N.low=U+K;N.high=ga+X+(U>>>0<K>>>0?1:0);V=c.low=V+L;c.high=ha+Z+(V>>>0<L>>>0?1:0)},_doFinalize:function(){var a=this._data,b=a.words,c=8*this._nDataBytes,f=8*a.sigBytes;b[f>>>5]|=128<<24-f%32;b[(f+128>>>10<<5)+30]=Math.floor(c/4294967296);b[(f+128>>>10<<5)+31]=c;a.sigBytes=4*b.length;this._process();return this._hash.toX32()},clone:function(){var a=c.clone.call(this);a._hash=this._hash.clone();return a},blockSize:32});j.SHA512=c._createHelper(b);j.HmacSHA512=c._createHmacHelper(b)})();
(function(){var a=CryptoJS,j=a.enc.Utf8;a.algo.HMAC=a.lib.Base.extend({init:function(a,b){a=this._hasher=new a.init;"string"==typeof b&&(b=j.parse(b));var f=a.blockSize,l=4*f;b.sigBytes>l&&(b=a.finalize(b));b.clamp();for(var u=this._oKey=b.clone(),k=this._iKey=b.clone(),m=u.words,y=k.words,z=0;z<f;z++)m[z]^=1549556828,y[z]^=909522486;u.sigBytes=k.sigBytes=l;this.reset()},reset:function(){var a=this._hasher;a.reset();a.update(this._iKey)},update:function(a){this._hasher.update(a);return this},finalize:function(a){var b=
this._hasher;a=b.finalize(a);b.reset();return b.finalize(this._oKey.clone().concat(a))}})})();

19
data/js/cryptojs/md5.js Normal file
View File

@@ -0,0 +1,19 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(s,p){var m={},l=m.lib={},n=function(){},r=l.Base={extend:function(b){n.prototype=this;var h=new n;b&&h.mixIn(b);h.hasOwnProperty("init")||(h.init=function(){h.$super.init.apply(this,arguments)});h.init.prototype=h;h.$super=this;return h},create:function(){var b=this.extend();b.init.apply(b,arguments);return b},init:function(){},mixIn:function(b){for(var h in b)b.hasOwnProperty(h)&&(this[h]=b[h]);b.hasOwnProperty("toString")&&(this.toString=b.toString)},clone:function(){return this.init.prototype.extend(this)}},
q=l.WordArray=r.extend({init:function(b,h){b=this.words=b||[];this.sigBytes=h!=p?h:4*b.length},toString:function(b){return(b||t).stringify(this)},concat:function(b){var h=this.words,a=b.words,j=this.sigBytes;b=b.sigBytes;this.clamp();if(j%4)for(var g=0;g<b;g++)h[j+g>>>2]|=(a[g>>>2]>>>24-8*(g%4)&255)<<24-8*((j+g)%4);else if(65535<a.length)for(g=0;g<b;g+=4)h[j+g>>>2]=a[g>>>2];else h.push.apply(h,a);this.sigBytes+=b;return this},clamp:function(){var b=this.words,h=this.sigBytes;b[h>>>2]&=4294967295<<
32-8*(h%4);b.length=s.ceil(h/4)},clone:function(){var b=r.clone.call(this);b.words=this.words.slice(0);return b},random:function(b){for(var h=[],a=0;a<b;a+=4)h.push(4294967296*s.random()|0);return new q.init(h,b)}}),v=m.enc={},t=v.Hex={stringify:function(b){var a=b.words;b=b.sigBytes;for(var g=[],j=0;j<b;j++){var k=a[j>>>2]>>>24-8*(j%4)&255;g.push((k>>>4).toString(16));g.push((k&15).toString(16))}return g.join("")},parse:function(b){for(var a=b.length,g=[],j=0;j<a;j+=2)g[j>>>3]|=parseInt(b.substr(j,
2),16)<<24-4*(j%8);return new q.init(g,a/2)}},a=v.Latin1={stringify:function(b){var a=b.words;b=b.sigBytes;for(var g=[],j=0;j<b;j++)g.push(String.fromCharCode(a[j>>>2]>>>24-8*(j%4)&255));return g.join("")},parse:function(b){for(var a=b.length,g=[],j=0;j<a;j++)g[j>>>2]|=(b.charCodeAt(j)&255)<<24-8*(j%4);return new q.init(g,a)}},u=v.Utf8={stringify:function(b){try{return decodeURIComponent(escape(a.stringify(b)))}catch(g){throw Error("Malformed UTF-8 data");}},parse:function(b){return a.parse(unescape(encodeURIComponent(b)))}},
g=l.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new q.init;this._nDataBytes=0},_append:function(b){"string"==typeof b&&(b=u.parse(b));this._data.concat(b);this._nDataBytes+=b.sigBytes},_process:function(b){var a=this._data,g=a.words,j=a.sigBytes,k=this.blockSize,m=j/(4*k),m=b?s.ceil(m):s.max((m|0)-this._minBufferSize,0);b=m*k;j=s.min(4*b,j);if(b){for(var l=0;l<b;l+=k)this._doProcessBlock(g,l);l=g.splice(0,b);a.sigBytes-=j}return new q.init(l,j)},clone:function(){var b=r.clone.call(this);
b._data=this._data.clone();return b},_minBufferSize:0});l.Hasher=g.extend({cfg:r.extend(),init:function(b){this.cfg=this.cfg.extend(b);this.reset()},reset:function(){g.reset.call(this);this._doReset()},update:function(b){this._append(b);this._process();return this},finalize:function(b){b&&this._append(b);return this._doFinalize()},blockSize:16,_createHelper:function(b){return function(a,g){return(new b.init(g)).finalize(a)}},_createHmacHelper:function(b){return function(a,g){return(new k.HMAC.init(b,
g)).finalize(a)}}});var k=m.algo={};return m}(Math);
(function(s){function p(a,k,b,h,l,j,m){a=a+(k&b|~k&h)+l+m;return(a<<j|a>>>32-j)+k}function m(a,k,b,h,l,j,m){a=a+(k&h|b&~h)+l+m;return(a<<j|a>>>32-j)+k}function l(a,k,b,h,l,j,m){a=a+(k^b^h)+l+m;return(a<<j|a>>>32-j)+k}function n(a,k,b,h,l,j,m){a=a+(b^(k|~h))+l+m;return(a<<j|a>>>32-j)+k}for(var r=CryptoJS,q=r.lib,v=q.WordArray,t=q.Hasher,q=r.algo,a=[],u=0;64>u;u++)a[u]=4294967296*s.abs(s.sin(u+1))|0;q=q.MD5=t.extend({_doReset:function(){this._hash=new v.init([1732584193,4023233417,2562383102,271733878])},
_doProcessBlock:function(g,k){for(var b=0;16>b;b++){var h=k+b,w=g[h];g[h]=(w<<8|w>>>24)&16711935|(w<<24|w>>>8)&4278255360}var b=this._hash.words,h=g[k+0],w=g[k+1],j=g[k+2],q=g[k+3],r=g[k+4],s=g[k+5],t=g[k+6],u=g[k+7],v=g[k+8],x=g[k+9],y=g[k+10],z=g[k+11],A=g[k+12],B=g[k+13],C=g[k+14],D=g[k+15],c=b[0],d=b[1],e=b[2],f=b[3],c=p(c,d,e,f,h,7,a[0]),f=p(f,c,d,e,w,12,a[1]),e=p(e,f,c,d,j,17,a[2]),d=p(d,e,f,c,q,22,a[3]),c=p(c,d,e,f,r,7,a[4]),f=p(f,c,d,e,s,12,a[5]),e=p(e,f,c,d,t,17,a[6]),d=p(d,e,f,c,u,22,a[7]),
c=p(c,d,e,f,v,7,a[8]),f=p(f,c,d,e,x,12,a[9]),e=p(e,f,c,d,y,17,a[10]),d=p(d,e,f,c,z,22,a[11]),c=p(c,d,e,f,A,7,a[12]),f=p(f,c,d,e,B,12,a[13]),e=p(e,f,c,d,C,17,a[14]),d=p(d,e,f,c,D,22,a[15]),c=m(c,d,e,f,w,5,a[16]),f=m(f,c,d,e,t,9,a[17]),e=m(e,f,c,d,z,14,a[18]),d=m(d,e,f,c,h,20,a[19]),c=m(c,d,e,f,s,5,a[20]),f=m(f,c,d,e,y,9,a[21]),e=m(e,f,c,d,D,14,a[22]),d=m(d,e,f,c,r,20,a[23]),c=m(c,d,e,f,x,5,a[24]),f=m(f,c,d,e,C,9,a[25]),e=m(e,f,c,d,q,14,a[26]),d=m(d,e,f,c,v,20,a[27]),c=m(c,d,e,f,B,5,a[28]),f=m(f,c,
d,e,j,9,a[29]),e=m(e,f,c,d,u,14,a[30]),d=m(d,e,f,c,A,20,a[31]),c=l(c,d,e,f,s,4,a[32]),f=l(f,c,d,e,v,11,a[33]),e=l(e,f,c,d,z,16,a[34]),d=l(d,e,f,c,C,23,a[35]),c=l(c,d,e,f,w,4,a[36]),f=l(f,c,d,e,r,11,a[37]),e=l(e,f,c,d,u,16,a[38]),d=l(d,e,f,c,y,23,a[39]),c=l(c,d,e,f,B,4,a[40]),f=l(f,c,d,e,h,11,a[41]),e=l(e,f,c,d,q,16,a[42]),d=l(d,e,f,c,t,23,a[43]),c=l(c,d,e,f,x,4,a[44]),f=l(f,c,d,e,A,11,a[45]),e=l(e,f,c,d,D,16,a[46]),d=l(d,e,f,c,j,23,a[47]),c=n(c,d,e,f,h,6,a[48]),f=n(f,c,d,e,u,10,a[49]),e=n(e,f,c,d,
C,15,a[50]),d=n(d,e,f,c,s,21,a[51]),c=n(c,d,e,f,A,6,a[52]),f=n(f,c,d,e,q,10,a[53]),e=n(e,f,c,d,y,15,a[54]),d=n(d,e,f,c,w,21,a[55]),c=n(c,d,e,f,v,6,a[56]),f=n(f,c,d,e,D,10,a[57]),e=n(e,f,c,d,t,15,a[58]),d=n(d,e,f,c,B,21,a[59]),c=n(c,d,e,f,r,6,a[60]),f=n(f,c,d,e,z,10,a[61]),e=n(e,f,c,d,j,15,a[62]),d=n(d,e,f,c,x,21,a[63]);b[0]=b[0]+c|0;b[1]=b[1]+d|0;b[2]=b[2]+e|0;b[3]=b[3]+f|0},_doFinalize:function(){var a=this._data,k=a.words,b=8*this._nDataBytes,h=8*a.sigBytes;k[h>>>5]|=128<<24-h%32;var l=s.floor(b/
4294967296);k[(h+64>>>9<<4)+15]=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360;k[(h+64>>>9<<4)+14]=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360;a.sigBytes=4*(k.length+1);this._process();a=this._hash;k=a.words;for(b=0;4>b;b++)h=k[b],k[b]=(h<<8|h>>>24)&16711935|(h<<24|h>>>8)&4278255360;return a},clone:function(){var a=t.clone.call(this);a._hash=this._hash.clone();return a}});r.MD5=t._createHelper(q);r.HmacMD5=t._createHmacHelper(q)})(Math);

View File

@@ -0,0 +1,19 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(g,j){var e={},d=e.lib={},m=function(){},n=d.Base={extend:function(a){m.prototype=this;var c=new m;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
q=d.WordArray=n.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=j?c:4*a.length},toString:function(a){return(a||l).stringify(this)},concat:function(a){var c=this.words,p=a.words,f=this.sigBytes;a=a.sigBytes;this.clamp();if(f%4)for(var b=0;b<a;b++)c[f+b>>>2]|=(p[b>>>2]>>>24-8*(b%4)&255)<<24-8*((f+b)%4);else if(65535<p.length)for(b=0;b<a;b+=4)c[f+b>>>2]=p[b>>>2];else c.push.apply(c,p);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
32-8*(c%4);a.length=g.ceil(c/4)},clone:function(){var a=n.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],b=0;b<a;b+=4)c.push(4294967296*g.random()|0);return new q.init(c,a)}}),b=e.enc={},l=b.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],f=0;f<a;f++){var d=c[f>>>2]>>>24-8*(f%4)&255;b.push((d>>>4).toString(16));b.push((d&15).toString(16))}return b.join("")},parse:function(a){for(var c=a.length,b=[],f=0;f<c;f+=2)b[f>>>3]|=parseInt(a.substr(f,
2),16)<<24-4*(f%8);return new q.init(b,c/2)}},k=b.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],f=0;f<a;f++)b.push(String.fromCharCode(c[f>>>2]>>>24-8*(f%4)&255));return b.join("")},parse:function(a){for(var c=a.length,b=[],f=0;f<c;f++)b[f>>>2]|=(a.charCodeAt(f)&255)<<24-8*(f%4);return new q.init(b,c)}},h=b.Utf8={stringify:function(a){try{return decodeURIComponent(escape(k.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return k.parse(unescape(encodeURIComponent(a)))}},
u=d.BufferedBlockAlgorithm=n.extend({reset:function(){this._data=new q.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=h.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var b=this._data,d=b.words,f=b.sigBytes,l=this.blockSize,e=f/(4*l),e=a?g.ceil(e):g.max((e|0)-this._minBufferSize,0);a=e*l;f=g.min(4*a,f);if(a){for(var h=0;h<a;h+=l)this._doProcessBlock(d,h);h=d.splice(0,a);b.sigBytes-=f}return new q.init(h,f)},clone:function(){var a=n.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});d.Hasher=u.extend({cfg:n.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){u.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,d){return(new a.init(d)).finalize(b)}},_createHmacHelper:function(a){return function(b,d){return(new w.HMAC.init(a,
d)).finalize(b)}}});var w=e.algo={};return e}(Math);
(function(){var g=CryptoJS,j=g.lib,e=j.WordArray,d=j.Hasher,m=[],j=g.algo.SHA1=d.extend({_doReset:function(){this._hash=new e.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(d,e){for(var b=this._hash.words,l=b[0],k=b[1],h=b[2],g=b[3],j=b[4],a=0;80>a;a++){if(16>a)m[a]=d[e+a]|0;else{var c=m[a-3]^m[a-8]^m[a-14]^m[a-16];m[a]=c<<1|c>>>31}c=(l<<5|l>>>27)+j+m[a];c=20>a?c+((k&h|~k&g)+1518500249):40>a?c+((k^h^g)+1859775393):60>a?c+((k&h|k&g|h&g)-1894007588):c+((k^h^
g)-899497514);j=g;g=h;h=k<<30|k>>>2;k=l;l=c}b[0]=b[0]+l|0;b[1]=b[1]+k|0;b[2]=b[2]+h|0;b[3]=b[3]+g|0;b[4]=b[4]+j|0},_doFinalize:function(){var d=this._data,e=d.words,b=8*this._nDataBytes,l=8*d.sigBytes;e[l>>>5]|=128<<24-l%32;e[(l+64>>>9<<4)+14]=Math.floor(b/4294967296);e[(l+64>>>9<<4)+15]=b;d.sigBytes=4*e.length;this._process();return this._hash},clone:function(){var e=d.clone.call(this);e._hash=this._hash.clone();return e}});g.SHA1=d._createHelper(j);g.HmacSHA1=d._createHmacHelper(j)})();
(function(){var g=CryptoJS,j=g.enc.Utf8;g.algo.HMAC=g.lib.Base.extend({init:function(e,d){e=this._hasher=new e.init;"string"==typeof d&&(d=j.parse(d));var g=e.blockSize,n=4*g;d.sigBytes>n&&(d=e.finalize(d));d.clamp();for(var q=this._oKey=d.clone(),b=this._iKey=d.clone(),l=q.words,k=b.words,h=0;h<g;h++)l[h]^=1549556828,k[h]^=909522486;q.sigBytes=b.sigBytes=n;this.reset()},reset:function(){var e=this._hasher;e.reset();e.update(this._iKey)},update:function(e){this._hasher.update(e);return this},finalize:function(e){var d=
this._hasher;e=d.finalize(e);d.reset();return d.finalize(this._oKey.clone().concat(e))}})})();
(function(){var g=CryptoJS,j=g.lib,e=j.Base,d=j.WordArray,j=g.algo,m=j.HMAC,n=j.PBKDF2=e.extend({cfg:e.extend({keySize:4,hasher:j.SHA1,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(e,b){for(var g=this.cfg,k=m.create(g.hasher,e),h=d.create(),j=d.create([1]),n=h.words,a=j.words,c=g.keySize,g=g.iterations;n.length<c;){var p=k.update(b).finalize(j);k.reset();for(var f=p.words,v=f.length,s=p,t=1;t<g;t++){s=k.finalize(s);k.reset();for(var x=s.words,r=0;r<v;r++)f[r]^=x[r]}h.concat(p);
a[0]++}h.sigBytes=4*c;return h}});g.PBKDF2=function(d,b,e){return n.create(e).compute(d,b)}})();

View File

@@ -0,0 +1,36 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(q,k){var e={},l=e.lib={},p=function(){},c=l.Base={extend:function(a){p.prototype=this;var b=new p;a&&b.mixIn(a);b.hasOwnProperty("init")||(b.init=function(){b.$super.init.apply(this,arguments)});b.init.prototype=b;b.$super=this;return b},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
s=l.WordArray=c.extend({init:function(a,b){a=this.words=a||[];this.sigBytes=b!=k?b:4*a.length},toString:function(a){return(a||d).stringify(this)},concat:function(a){var b=this.words,m=a.words,n=this.sigBytes;a=a.sigBytes;this.clamp();if(n%4)for(var r=0;r<a;r++)b[n+r>>>2]|=(m[r>>>2]>>>24-8*(r%4)&255)<<24-8*((n+r)%4);else if(65535<m.length)for(r=0;r<a;r+=4)b[n+r>>>2]=m[r>>>2];else b.push.apply(b,m);this.sigBytes+=a;return this},clamp:function(){var a=this.words,b=this.sigBytes;a[b>>>2]&=4294967295<<
32-8*(b%4);a.length=q.ceil(b/4)},clone:function(){var a=c.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var b=[],m=0;m<a;m+=4)b.push(4294967296*q.random()|0);return new s.init(b,a)}}),b=e.enc={},d=b.Hex={stringify:function(a){var b=a.words;a=a.sigBytes;for(var m=[],n=0;n<a;n++){var r=b[n>>>2]>>>24-8*(n%4)&255;m.push((r>>>4).toString(16));m.push((r&15).toString(16))}return m.join("")},parse:function(a){for(var b=a.length,m=[],n=0;n<b;n+=2)m[n>>>3]|=parseInt(a.substr(n,
2),16)<<24-4*(n%8);return new s.init(m,b/2)}},a=b.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var m=[],n=0;n<a;n++)m.push(String.fromCharCode(b[n>>>2]>>>24-8*(n%4)&255));return m.join("")},parse:function(a){for(var b=a.length,m=[],n=0;n<b;n++)m[n>>>2]|=(a.charCodeAt(n)&255)<<24-8*(n%4);return new s.init(m,b)}},t=b.Utf8={stringify:function(b){try{return decodeURIComponent(escape(a.stringify(b)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(b){return a.parse(unescape(encodeURIComponent(b)))}},
u=l.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new s.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=t.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var b=this._data,m=b.words,n=b.sigBytes,r=this.blockSize,c=n/(4*r),c=a?q.ceil(c):q.max((c|0)-this._minBufferSize,0);a=c*r;n=q.min(4*a,n);if(a){for(var u=0;u<a;u+=r)this._doProcessBlock(m,u);u=m.splice(0,a);b.sigBytes-=n}return new s.init(u,n)},clone:function(){var a=c.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});l.Hasher=u.extend({cfg:c.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){u.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,m){return(new a.init(m)).finalize(b)}},_createHmacHelper:function(a){return function(b,m){return(new w.HMAC.init(a,
m)).finalize(b)}}});var w=e.algo={};return e}(Math);
(function(){var q=CryptoJS,k=q.lib.WordArray;q.enc.Base64={stringify:function(e){var l=e.words,p=e.sigBytes,c=this._map;e.clamp();e=[];for(var k=0;k<p;k+=3)for(var b=(l[k>>>2]>>>24-8*(k%4)&255)<<16|(l[k+1>>>2]>>>24-8*((k+1)%4)&255)<<8|l[k+2>>>2]>>>24-8*((k+2)%4)&255,d=0;4>d&&k+0.75*d<p;d++)e.push(c.charAt(b>>>6*(3-d)&63));if(l=c.charAt(64))for(;e.length%4;)e.push(l);return e.join("")},parse:function(e){var l=e.length,p=this._map,c=p.charAt(64);c&&(c=e.indexOf(c),-1!=c&&(l=c));for(var c=[],s=0,b=0;b<
l;b++)if(b%4){var d=p.indexOf(e.charAt(b-1))<<2*(b%4),a=p.indexOf(e.charAt(b))>>>6-2*(b%4);c[s>>>2]|=(d|a)<<24-8*(s%4);s++}return k.create(c,s)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();
(function(q){function k(a,b,c,d,m,n,r){a=a+(b&c|~b&d)+m+r;return(a<<n|a>>>32-n)+b}function e(a,b,c,d,m,n,r){a=a+(b&d|c&~d)+m+r;return(a<<n|a>>>32-n)+b}function l(a,b,c,d,m,n,r){a=a+(b^c^d)+m+r;return(a<<n|a>>>32-n)+b}function p(a,b,c,d,m,n,r){a=a+(c^(b|~d))+m+r;return(a<<n|a>>>32-n)+b}for(var c=CryptoJS,s=c.lib,b=s.WordArray,d=s.Hasher,s=c.algo,a=[],t=0;64>t;t++)a[t]=4294967296*q.abs(q.sin(t+1))|0;s=s.MD5=d.extend({_doReset:function(){this._hash=new b.init([1732584193,4023233417,2562383102,271733878])},
_doProcessBlock:function(b,c){for(var d=0;16>d;d++){var t=c+d,m=b[t];b[t]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360}var d=this._hash.words,t=b[c+0],m=b[c+1],n=b[c+2],r=b[c+3],x=b[c+4],s=b[c+5],q=b[c+6],y=b[c+7],z=b[c+8],A=b[c+9],B=b[c+10],C=b[c+11],D=b[c+12],E=b[c+13],F=b[c+14],G=b[c+15],f=d[0],g=d[1],h=d[2],j=d[3],f=k(f,g,h,j,t,7,a[0]),j=k(j,f,g,h,m,12,a[1]),h=k(h,j,f,g,n,17,a[2]),g=k(g,h,j,f,r,22,a[3]),f=k(f,g,h,j,x,7,a[4]),j=k(j,f,g,h,s,12,a[5]),h=k(h,j,f,g,q,17,a[6]),g=k(g,h,j,f,y,22,a[7]),
f=k(f,g,h,j,z,7,a[8]),j=k(j,f,g,h,A,12,a[9]),h=k(h,j,f,g,B,17,a[10]),g=k(g,h,j,f,C,22,a[11]),f=k(f,g,h,j,D,7,a[12]),j=k(j,f,g,h,E,12,a[13]),h=k(h,j,f,g,F,17,a[14]),g=k(g,h,j,f,G,22,a[15]),f=e(f,g,h,j,m,5,a[16]),j=e(j,f,g,h,q,9,a[17]),h=e(h,j,f,g,C,14,a[18]),g=e(g,h,j,f,t,20,a[19]),f=e(f,g,h,j,s,5,a[20]),j=e(j,f,g,h,B,9,a[21]),h=e(h,j,f,g,G,14,a[22]),g=e(g,h,j,f,x,20,a[23]),f=e(f,g,h,j,A,5,a[24]),j=e(j,f,g,h,F,9,a[25]),h=e(h,j,f,g,r,14,a[26]),g=e(g,h,j,f,z,20,a[27]),f=e(f,g,h,j,E,5,a[28]),j=e(j,f,
g,h,n,9,a[29]),h=e(h,j,f,g,y,14,a[30]),g=e(g,h,j,f,D,20,a[31]),f=l(f,g,h,j,s,4,a[32]),j=l(j,f,g,h,z,11,a[33]),h=l(h,j,f,g,C,16,a[34]),g=l(g,h,j,f,F,23,a[35]),f=l(f,g,h,j,m,4,a[36]),j=l(j,f,g,h,x,11,a[37]),h=l(h,j,f,g,y,16,a[38]),g=l(g,h,j,f,B,23,a[39]),f=l(f,g,h,j,E,4,a[40]),j=l(j,f,g,h,t,11,a[41]),h=l(h,j,f,g,r,16,a[42]),g=l(g,h,j,f,q,23,a[43]),f=l(f,g,h,j,A,4,a[44]),j=l(j,f,g,h,D,11,a[45]),h=l(h,j,f,g,G,16,a[46]),g=l(g,h,j,f,n,23,a[47]),f=p(f,g,h,j,t,6,a[48]),j=p(j,f,g,h,y,10,a[49]),h=p(h,j,f,g,
F,15,a[50]),g=p(g,h,j,f,s,21,a[51]),f=p(f,g,h,j,D,6,a[52]),j=p(j,f,g,h,r,10,a[53]),h=p(h,j,f,g,B,15,a[54]),g=p(g,h,j,f,m,21,a[55]),f=p(f,g,h,j,z,6,a[56]),j=p(j,f,g,h,G,10,a[57]),h=p(h,j,f,g,q,15,a[58]),g=p(g,h,j,f,E,21,a[59]),f=p(f,g,h,j,x,6,a[60]),j=p(j,f,g,h,C,10,a[61]),h=p(h,j,f,g,n,15,a[62]),g=p(g,h,j,f,A,21,a[63]);d[0]=d[0]+f|0;d[1]=d[1]+g|0;d[2]=d[2]+h|0;d[3]=d[3]+j|0},_doFinalize:function(){var a=this._data,b=a.words,c=8*this._nDataBytes,d=8*a.sigBytes;b[d>>>5]|=128<<24-d%32;var m=q.floor(c/
4294967296);b[(d+64>>>9<<4)+15]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360;b[(d+64>>>9<<4)+14]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;a.sigBytes=4*(b.length+1);this._process();a=this._hash;b=a.words;for(c=0;4>c;c++)d=b[c],b[c]=(d<<8|d>>>24)&16711935|(d<<24|d>>>8)&4278255360;return a},clone:function(){var a=d.clone.call(this);a._hash=this._hash.clone();return a}});c.MD5=d._createHelper(s);c.HmacMD5=d._createHmacHelper(s)})(Math);
(function(){var q=CryptoJS,k=q.lib,e=k.Base,l=k.WordArray,k=q.algo,p=k.EvpKDF=e.extend({cfg:e.extend({keySize:4,hasher:k.MD5,iterations:1}),init:function(c){this.cfg=this.cfg.extend(c)},compute:function(c,e){for(var b=this.cfg,d=b.hasher.create(),a=l.create(),k=a.words,p=b.keySize,b=b.iterations;k.length<p;){q&&d.update(q);var q=d.update(c).finalize(e);d.reset();for(var v=1;v<b;v++)q=d.finalize(q),d.reset();a.concat(q)}a.sigBytes=4*p;return a}});q.EvpKDF=function(c,e,b){return p.create(b).compute(c,
e)}})();
CryptoJS.lib.Cipher||function(q){var k=CryptoJS,e=k.lib,l=e.Base,p=e.WordArray,c=e.BufferedBlockAlgorithm,s=k.enc.Base64,b=k.algo.EvpKDF,d=e.Cipher=c.extend({cfg:l.extend(),createEncryptor:function(a,b){return this.create(this._ENC_XFORM_MODE,a,b)},createDecryptor:function(a,b){return this.create(this._DEC_XFORM_MODE,a,b)},init:function(a,b,c){this.cfg=this.cfg.extend(c);this._xformMode=a;this._key=b;this.reset()},reset:function(){c.reset.call(this);this._doReset()},process:function(a){this._append(a);return this._process()},
finalize:function(a){a&&this._append(a);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(a){return{encrypt:function(b,c,d){return("string"==typeof c?H:v).encrypt(a,b,c,d)},decrypt:function(b,c,d){return("string"==typeof c?H:v).decrypt(a,b,c,d)}}}});e.StreamCipher=d.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var a=k.mode={},t=function(a,b,c){var d=this._iv;d?this._iv=q:d=this._prevBlock;for(var e=0;e<c;e++)a[b+e]^=
d[e]},u=(e.BlockCipherMode=l.extend({createEncryptor:function(a,b){return this.Encryptor.create(a,b)},createDecryptor:function(a,b){return this.Decryptor.create(a,b)},init:function(a,b){this._cipher=a;this._iv=b}})).extend();u.Encryptor=u.extend({processBlock:function(a,b){var c=this._cipher,d=c.blockSize;t.call(this,a,b,d);c.encryptBlock(a,b);this._prevBlock=a.slice(b,b+d)}});u.Decryptor=u.extend({processBlock:function(a,b){var c=this._cipher,d=c.blockSize,e=a.slice(b,b+d);c.decryptBlock(a,b);t.call(this,
a,b,d);this._prevBlock=e}});a=a.CBC=u;u=(k.pad={}).Pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigBytes%c,d=c<<24|c<<16|c<<8|c,e=[],k=0;k<c;k+=4)e.push(d);c=p.create(e,c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};e.BlockCipher=d.extend({cfg:d.cfg.extend({mode:a,padding:u}),reset:function(){d.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,
this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var w=e.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),a=(k.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?p.create([1398893684,
1701076831]).concat(a).concat(b):b).toString(s)},parse:function(a){a=s.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=p.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return w.create({ciphertext:a,salt:c})}},v=e.SerializableCipher=l.extend({cfg:l.extend({format:a}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var e=a.createEncryptor(c,d);b=e.finalize(b);e=e.cfg;return w.create({ciphertext:b,key:c,iv:e.iv,algorithm:a,mode:e.mode,padding:e.padding,blockSize:a.blockSize,formatter:d.format})},
decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),k=(k.kdf={}).OpenSSL={execute:function(a,c,d,e){e||(e=p.random(8));a=b.create({keySize:c+d}).compute(a,e);d=p.create(a.words.slice(c),4*d);a.sigBytes=4*c;return w.create({key:a,iv:d,salt:e})}},H=e.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:k}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);c=d.kdf.execute(c,
a.keySize,a.ivSize);d.iv=c.iv;a=v.encrypt.call(this,a,b,c.key,d);a.mixIn(c);return a},decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);c=d.kdf.execute(c,a.keySize,a.ivSize,b.salt);d.iv=c.iv;return v.decrypt.call(this,a,b,c.key,d)}})}();
(function(){function q(){for(var b=this._X,d=this._C,a=0;8>a;a++)p[a]=d[a];d[0]=d[0]+1295307597+this._b|0;d[1]=d[1]+3545052371+(d[0]>>>0<p[0]>>>0?1:0)|0;d[2]=d[2]+886263092+(d[1]>>>0<p[1]>>>0?1:0)|0;d[3]=d[3]+1295307597+(d[2]>>>0<p[2]>>>0?1:0)|0;d[4]=d[4]+3545052371+(d[3]>>>0<p[3]>>>0?1:0)|0;d[5]=d[5]+886263092+(d[4]>>>0<p[4]>>>0?1:0)|0;d[6]=d[6]+1295307597+(d[5]>>>0<p[5]>>>0?1:0)|0;d[7]=d[7]+3545052371+(d[6]>>>0<p[6]>>>0?1:0)|0;this._b=d[7]>>>0<p[7]>>>0?1:0;for(a=0;8>a;a++){var e=b[a]+d[a],k=e&65535,
l=e>>>16;c[a]=((k*k>>>17)+k*l>>>15)+l*l^((e&4294901760)*e|0)+((e&65535)*e|0)}b[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0;b[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0;b[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0;b[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0;b[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0;b[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0;b[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0;b[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var k=CryptoJS,e=k.lib.StreamCipher,l=[],p=[],c=[],s=k.algo.RabbitLegacy=
e.extend({_doReset:function(){for(var b=this._key.words,c=this.cfg.iv,a=this._X=[b[0],b[3]<<16|b[2]>>>16,b[1],b[0]<<16|b[3]>>>16,b[2],b[1]<<16|b[0]>>>16,b[3],b[2]<<16|b[1]>>>16],b=this._C=[b[2]<<16|b[2]>>>16,b[0]&4294901760|b[1]&65535,b[3]<<16|b[3]>>>16,b[1]&4294901760|b[2]&65535,b[0]<<16|b[0]>>>16,b[2]&4294901760|b[3]&65535,b[1]<<16|b[1]>>>16,b[3]&4294901760|b[0]&65535],e=this._b=0;4>e;e++)q.call(this);for(e=0;8>e;e++)b[e]^=a[e+4&7];if(c){var a=c.words,c=a[0],a=a[1],c=(c<<8|c>>>24)&16711935|(c<<
24|c>>>8)&4278255360,a=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360,e=c>>>16|a&4294901760,k=a<<16|c&65535;b[0]^=c;b[1]^=e;b[2]^=a;b[3]^=k;b[4]^=c;b[5]^=e;b[6]^=a;b[7]^=k;for(e=0;4>e;e++)q.call(this)}},_doProcessBlock:function(b,c){var a=this._X;q.call(this);l[0]=a[0]^a[5]>>>16^a[3]<<16;l[1]=a[2]^a[7]>>>16^a[5]<<16;l[2]=a[4]^a[1]>>>16^a[7]<<16;l[3]=a[6]^a[3]>>>16^a[1]<<16;for(a=0;4>a;a++)l[a]=(l[a]<<8|l[a]>>>24)&16711935|(l[a]<<24|l[a]>>>8)&4278255360,b[c+a]^=l[a]},blockSize:4,ivSize:2});k.RabbitLegacy=
e._createHelper(s)})();

View File

@@ -0,0 +1,36 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(q,k){var e={},l=e.lib={},p=function(){},c=l.Base={extend:function(a){p.prototype=this;var b=new p;a&&b.mixIn(a);b.hasOwnProperty("init")||(b.init=function(){b.$super.init.apply(this,arguments)});b.init.prototype=b;b.$super=this;return b},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
s=l.WordArray=c.extend({init:function(a,b){a=this.words=a||[];this.sigBytes=b!=k?b:4*a.length},toString:function(a){return(a||d).stringify(this)},concat:function(a){var b=this.words,m=a.words,n=this.sigBytes;a=a.sigBytes;this.clamp();if(n%4)for(var r=0;r<a;r++)b[n+r>>>2]|=(m[r>>>2]>>>24-8*(r%4)&255)<<24-8*((n+r)%4);else if(65535<m.length)for(r=0;r<a;r+=4)b[n+r>>>2]=m[r>>>2];else b.push.apply(b,m);this.sigBytes+=a;return this},clamp:function(){var a=this.words,b=this.sigBytes;a[b>>>2]&=4294967295<<
32-8*(b%4);a.length=q.ceil(b/4)},clone:function(){var a=c.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var b=[],m=0;m<a;m+=4)b.push(4294967296*q.random()|0);return new s.init(b,a)}}),b=e.enc={},d=b.Hex={stringify:function(a){var b=a.words;a=a.sigBytes;for(var m=[],n=0;n<a;n++){var r=b[n>>>2]>>>24-8*(n%4)&255;m.push((r>>>4).toString(16));m.push((r&15).toString(16))}return m.join("")},parse:function(a){for(var b=a.length,m=[],n=0;n<b;n+=2)m[n>>>3]|=parseInt(a.substr(n,
2),16)<<24-4*(n%8);return new s.init(m,b/2)}},a=b.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var m=[],n=0;n<a;n++)m.push(String.fromCharCode(b[n>>>2]>>>24-8*(n%4)&255));return m.join("")},parse:function(a){for(var b=a.length,m=[],n=0;n<b;n++)m[n>>>2]|=(a.charCodeAt(n)&255)<<24-8*(n%4);return new s.init(m,b)}},u=b.Utf8={stringify:function(b){try{return decodeURIComponent(escape(a.stringify(b)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(b){return a.parse(unescape(encodeURIComponent(b)))}},
t=l.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new s.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=u.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var b=this._data,m=b.words,n=b.sigBytes,r=this.blockSize,c=n/(4*r),c=a?q.ceil(c):q.max((c|0)-this._minBufferSize,0);a=c*r;n=q.min(4*a,n);if(a){for(var t=0;t<a;t+=r)this._doProcessBlock(m,t);t=m.splice(0,a);b.sigBytes-=n}return new s.init(t,n)},clone:function(){var a=c.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});l.Hasher=t.extend({cfg:c.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){t.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,m){return(new a.init(m)).finalize(b)}},_createHmacHelper:function(a){return function(b,m){return(new w.HMAC.init(a,
m)).finalize(b)}}});var w=e.algo={};return e}(Math);
(function(){var q=CryptoJS,k=q.lib.WordArray;q.enc.Base64={stringify:function(e){var l=e.words,p=e.sigBytes,c=this._map;e.clamp();e=[];for(var k=0;k<p;k+=3)for(var b=(l[k>>>2]>>>24-8*(k%4)&255)<<16|(l[k+1>>>2]>>>24-8*((k+1)%4)&255)<<8|l[k+2>>>2]>>>24-8*((k+2)%4)&255,d=0;4>d&&k+0.75*d<p;d++)e.push(c.charAt(b>>>6*(3-d)&63));if(l=c.charAt(64))for(;e.length%4;)e.push(l);return e.join("")},parse:function(e){var l=e.length,p=this._map,c=p.charAt(64);c&&(c=e.indexOf(c),-1!=c&&(l=c));for(var c=[],s=0,b=0;b<
l;b++)if(b%4){var d=p.indexOf(e.charAt(b-1))<<2*(b%4),a=p.indexOf(e.charAt(b))>>>6-2*(b%4);c[s>>>2]|=(d|a)<<24-8*(s%4);s++}return k.create(c,s)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();
(function(q){function k(a,b,c,d,m,n,r){a=a+(b&c|~b&d)+m+r;return(a<<n|a>>>32-n)+b}function e(a,b,c,d,m,n,r){a=a+(b&d|c&~d)+m+r;return(a<<n|a>>>32-n)+b}function l(a,b,c,d,m,n,r){a=a+(b^c^d)+m+r;return(a<<n|a>>>32-n)+b}function p(a,b,c,d,m,n,r){a=a+(c^(b|~d))+m+r;return(a<<n|a>>>32-n)+b}for(var c=CryptoJS,s=c.lib,b=s.WordArray,d=s.Hasher,s=c.algo,a=[],u=0;64>u;u++)a[u]=4294967296*q.abs(q.sin(u+1))|0;s=s.MD5=d.extend({_doReset:function(){this._hash=new b.init([1732584193,4023233417,2562383102,271733878])},
_doProcessBlock:function(b,c){for(var d=0;16>d;d++){var s=c+d,m=b[s];b[s]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360}var d=this._hash.words,s=b[c+0],m=b[c+1],n=b[c+2],r=b[c+3],x=b[c+4],u=b[c+5],q=b[c+6],y=b[c+7],z=b[c+8],A=b[c+9],B=b[c+10],C=b[c+11],D=b[c+12],E=b[c+13],F=b[c+14],G=b[c+15],f=d[0],g=d[1],h=d[2],j=d[3],f=k(f,g,h,j,s,7,a[0]),j=k(j,f,g,h,m,12,a[1]),h=k(h,j,f,g,n,17,a[2]),g=k(g,h,j,f,r,22,a[3]),f=k(f,g,h,j,x,7,a[4]),j=k(j,f,g,h,u,12,a[5]),h=k(h,j,f,g,q,17,a[6]),g=k(g,h,j,f,y,22,a[7]),
f=k(f,g,h,j,z,7,a[8]),j=k(j,f,g,h,A,12,a[9]),h=k(h,j,f,g,B,17,a[10]),g=k(g,h,j,f,C,22,a[11]),f=k(f,g,h,j,D,7,a[12]),j=k(j,f,g,h,E,12,a[13]),h=k(h,j,f,g,F,17,a[14]),g=k(g,h,j,f,G,22,a[15]),f=e(f,g,h,j,m,5,a[16]),j=e(j,f,g,h,q,9,a[17]),h=e(h,j,f,g,C,14,a[18]),g=e(g,h,j,f,s,20,a[19]),f=e(f,g,h,j,u,5,a[20]),j=e(j,f,g,h,B,9,a[21]),h=e(h,j,f,g,G,14,a[22]),g=e(g,h,j,f,x,20,a[23]),f=e(f,g,h,j,A,5,a[24]),j=e(j,f,g,h,F,9,a[25]),h=e(h,j,f,g,r,14,a[26]),g=e(g,h,j,f,z,20,a[27]),f=e(f,g,h,j,E,5,a[28]),j=e(j,f,
g,h,n,9,a[29]),h=e(h,j,f,g,y,14,a[30]),g=e(g,h,j,f,D,20,a[31]),f=l(f,g,h,j,u,4,a[32]),j=l(j,f,g,h,z,11,a[33]),h=l(h,j,f,g,C,16,a[34]),g=l(g,h,j,f,F,23,a[35]),f=l(f,g,h,j,m,4,a[36]),j=l(j,f,g,h,x,11,a[37]),h=l(h,j,f,g,y,16,a[38]),g=l(g,h,j,f,B,23,a[39]),f=l(f,g,h,j,E,4,a[40]),j=l(j,f,g,h,s,11,a[41]),h=l(h,j,f,g,r,16,a[42]),g=l(g,h,j,f,q,23,a[43]),f=l(f,g,h,j,A,4,a[44]),j=l(j,f,g,h,D,11,a[45]),h=l(h,j,f,g,G,16,a[46]),g=l(g,h,j,f,n,23,a[47]),f=p(f,g,h,j,s,6,a[48]),j=p(j,f,g,h,y,10,a[49]),h=p(h,j,f,g,
F,15,a[50]),g=p(g,h,j,f,u,21,a[51]),f=p(f,g,h,j,D,6,a[52]),j=p(j,f,g,h,r,10,a[53]),h=p(h,j,f,g,B,15,a[54]),g=p(g,h,j,f,m,21,a[55]),f=p(f,g,h,j,z,6,a[56]),j=p(j,f,g,h,G,10,a[57]),h=p(h,j,f,g,q,15,a[58]),g=p(g,h,j,f,E,21,a[59]),f=p(f,g,h,j,x,6,a[60]),j=p(j,f,g,h,C,10,a[61]),h=p(h,j,f,g,n,15,a[62]),g=p(g,h,j,f,A,21,a[63]);d[0]=d[0]+f|0;d[1]=d[1]+g|0;d[2]=d[2]+h|0;d[3]=d[3]+j|0},_doFinalize:function(){var a=this._data,b=a.words,c=8*this._nDataBytes,d=8*a.sigBytes;b[d>>>5]|=128<<24-d%32;var m=q.floor(c/
4294967296);b[(d+64>>>9<<4)+15]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360;b[(d+64>>>9<<4)+14]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;a.sigBytes=4*(b.length+1);this._process();a=this._hash;b=a.words;for(c=0;4>c;c++)d=b[c],b[c]=(d<<8|d>>>24)&16711935|(d<<24|d>>>8)&4278255360;return a},clone:function(){var a=d.clone.call(this);a._hash=this._hash.clone();return a}});c.MD5=d._createHelper(s);c.HmacMD5=d._createHmacHelper(s)})(Math);
(function(){var q=CryptoJS,k=q.lib,e=k.Base,l=k.WordArray,k=q.algo,p=k.EvpKDF=e.extend({cfg:e.extend({keySize:4,hasher:k.MD5,iterations:1}),init:function(c){this.cfg=this.cfg.extend(c)},compute:function(c,e){for(var b=this.cfg,d=b.hasher.create(),a=l.create(),k=a.words,p=b.keySize,b=b.iterations;k.length<p;){q&&d.update(q);var q=d.update(c).finalize(e);d.reset();for(var v=1;v<b;v++)q=d.finalize(q),d.reset();a.concat(q)}a.sigBytes=4*p;return a}});q.EvpKDF=function(c,e,b){return p.create(b).compute(c,
e)}})();
CryptoJS.lib.Cipher||function(q){var k=CryptoJS,e=k.lib,l=e.Base,p=e.WordArray,c=e.BufferedBlockAlgorithm,s=k.enc.Base64,b=k.algo.EvpKDF,d=e.Cipher=c.extend({cfg:l.extend(),createEncryptor:function(a,b){return this.create(this._ENC_XFORM_MODE,a,b)},createDecryptor:function(a,b){return this.create(this._DEC_XFORM_MODE,a,b)},init:function(a,b,c){this.cfg=this.cfg.extend(c);this._xformMode=a;this._key=b;this.reset()},reset:function(){c.reset.call(this);this._doReset()},process:function(a){this._append(a);return this._process()},
finalize:function(a){a&&this._append(a);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(a){return{encrypt:function(b,c,d){return("string"==typeof c?H:v).encrypt(a,b,c,d)},decrypt:function(b,c,d){return("string"==typeof c?H:v).decrypt(a,b,c,d)}}}});e.StreamCipher=d.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var a=k.mode={},u=function(a,b,c){var d=this._iv;d?this._iv=q:d=this._prevBlock;for(var e=0;e<c;e++)a[b+e]^=
d[e]},t=(e.BlockCipherMode=l.extend({createEncryptor:function(a,b){return this.Encryptor.create(a,b)},createDecryptor:function(a,b){return this.Decryptor.create(a,b)},init:function(a,b){this._cipher=a;this._iv=b}})).extend();t.Encryptor=t.extend({processBlock:function(a,b){var c=this._cipher,d=c.blockSize;u.call(this,a,b,d);c.encryptBlock(a,b);this._prevBlock=a.slice(b,b+d)}});t.Decryptor=t.extend({processBlock:function(a,b){var c=this._cipher,d=c.blockSize,e=a.slice(b,b+d);c.decryptBlock(a,b);u.call(this,
a,b,d);this._prevBlock=e}});a=a.CBC=t;t=(k.pad={}).Pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigBytes%c,d=c<<24|c<<16|c<<8|c,e=[],k=0;k<c;k+=4)e.push(d);c=p.create(e,c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};e.BlockCipher=d.extend({cfg:d.cfg.extend({mode:a,padding:t}),reset:function(){d.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,
this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var w=e.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),a=(k.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?p.create([1398893684,
1701076831]).concat(a).concat(b):b).toString(s)},parse:function(a){a=s.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=p.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return w.create({ciphertext:a,salt:c})}},v=e.SerializableCipher=l.extend({cfg:l.extend({format:a}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var e=a.createEncryptor(c,d);b=e.finalize(b);e=e.cfg;return w.create({ciphertext:b,key:c,iv:e.iv,algorithm:a,mode:e.mode,padding:e.padding,blockSize:a.blockSize,formatter:d.format})},
decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),k=(k.kdf={}).OpenSSL={execute:function(a,c,d,e){e||(e=p.random(8));a=b.create({keySize:c+d}).compute(a,e);d=p.create(a.words.slice(c),4*d);a.sigBytes=4*c;return w.create({key:a,iv:d,salt:e})}},H=e.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:k}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);c=d.kdf.execute(c,
a.keySize,a.ivSize);d.iv=c.iv;a=v.encrypt.call(this,a,b,c.key,d);a.mixIn(c);return a},decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);c=d.kdf.execute(c,a.keySize,a.ivSize,b.salt);d.iv=c.iv;return v.decrypt.call(this,a,b,c.key,d)}})}();
(function(){function q(){for(var b=this._X,d=this._C,a=0;8>a;a++)p[a]=d[a];d[0]=d[0]+1295307597+this._b|0;d[1]=d[1]+3545052371+(d[0]>>>0<p[0]>>>0?1:0)|0;d[2]=d[2]+886263092+(d[1]>>>0<p[1]>>>0?1:0)|0;d[3]=d[3]+1295307597+(d[2]>>>0<p[2]>>>0?1:0)|0;d[4]=d[4]+3545052371+(d[3]>>>0<p[3]>>>0?1:0)|0;d[5]=d[5]+886263092+(d[4]>>>0<p[4]>>>0?1:0)|0;d[6]=d[6]+1295307597+(d[5]>>>0<p[5]>>>0?1:0)|0;d[7]=d[7]+3545052371+(d[6]>>>0<p[6]>>>0?1:0)|0;this._b=d[7]>>>0<p[7]>>>0?1:0;for(a=0;8>a;a++){var e=b[a]+d[a],k=e&65535,
l=e>>>16;c[a]=((k*k>>>17)+k*l>>>15)+l*l^((e&4294901760)*e|0)+((e&65535)*e|0)}b[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0;b[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0;b[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0;b[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0;b[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0;b[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0;b[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0;b[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var k=CryptoJS,e=k.lib.StreamCipher,l=[],p=[],c=[],s=k.algo.Rabbit=
e.extend({_doReset:function(){for(var b=this._key.words,c=this.cfg.iv,a=0;4>a;a++)b[a]=(b[a]<<8|b[a]>>>24)&16711935|(b[a]<<24|b[a]>>>8)&4278255360;for(var e=this._X=[b[0],b[3]<<16|b[2]>>>16,b[1],b[0]<<16|b[3]>>>16,b[2],b[1]<<16|b[0]>>>16,b[3],b[2]<<16|b[1]>>>16],b=this._C=[b[2]<<16|b[2]>>>16,b[0]&4294901760|b[1]&65535,b[3]<<16|b[3]>>>16,b[1]&4294901760|b[2]&65535,b[0]<<16|b[0]>>>16,b[2]&4294901760|b[3]&65535,b[1]<<16|b[1]>>>16,b[3]&4294901760|b[0]&65535],a=this._b=0;4>a;a++)q.call(this);for(a=0;8>
a;a++)b[a]^=e[a+4&7];if(c){var a=c.words,c=a[0],a=a[1],c=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360,a=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360,e=c>>>16|a&4294901760,k=a<<16|c&65535;b[0]^=c;b[1]^=e;b[2]^=a;b[3]^=k;b[4]^=c;b[5]^=e;b[6]^=a;b[7]^=k;for(a=0;4>a;a++)q.call(this)}},_doProcessBlock:function(b,c){var a=this._X;q.call(this);l[0]=a[0]^a[5]>>>16^a[3]<<16;l[1]=a[2]^a[7]>>>16^a[5]<<16;l[2]=a[4]^a[1]>>>16^a[7]<<16;l[3]=a[6]^a[3]>>>16^a[1]<<16;for(a=0;4>a;a++)l[a]=(l[a]<<8|l[a]>>>24)&
16711935|(l[a]<<24|l[a]>>>8)&4278255360,b[c+a]^=l[a]},blockSize:4,ivSize:2});k.Rabbit=e._createHelper(s)})();

33
data/js/cryptojs/rc4.js Normal file
View File

@@ -0,0 +1,33 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(s,l){var e={},n=e.lib={},p=function(){},b=n.Base={extend:function(c){p.prototype=this;var a=new p;c&&a.mixIn(c);a.hasOwnProperty("init")||(a.init=function(){a.$super.init.apply(this,arguments)});a.init.prototype=a;a.$super=this;return a},create:function(){var c=this.extend();c.init.apply(c,arguments);return c},init:function(){},mixIn:function(c){for(var a in c)c.hasOwnProperty(a)&&(this[a]=c[a]);c.hasOwnProperty("toString")&&(this.toString=c.toString)},clone:function(){return this.init.prototype.extend(this)}},
d=n.WordArray=b.extend({init:function(c,a){c=this.words=c||[];this.sigBytes=a!=l?a:4*c.length},toString:function(c){return(c||q).stringify(this)},concat:function(c){var a=this.words,m=c.words,f=this.sigBytes;c=c.sigBytes;this.clamp();if(f%4)for(var r=0;r<c;r++)a[f+r>>>2]|=(m[r>>>2]>>>24-8*(r%4)&255)<<24-8*((f+r)%4);else if(65535<m.length)for(r=0;r<c;r+=4)a[f+r>>>2]=m[r>>>2];else a.push.apply(a,m);this.sigBytes+=c;return this},clamp:function(){var c=this.words,a=this.sigBytes;c[a>>>2]&=4294967295<<
32-8*(a%4);c.length=s.ceil(a/4)},clone:function(){var c=b.clone.call(this);c.words=this.words.slice(0);return c},random:function(c){for(var a=[],m=0;m<c;m+=4)a.push(4294967296*s.random()|0);return new d.init(a,c)}}),t=e.enc={},q=t.Hex={stringify:function(c){var a=c.words;c=c.sigBytes;for(var m=[],f=0;f<c;f++){var r=a[f>>>2]>>>24-8*(f%4)&255;m.push((r>>>4).toString(16));m.push((r&15).toString(16))}return m.join("")},parse:function(c){for(var a=c.length,m=[],f=0;f<a;f+=2)m[f>>>3]|=parseInt(c.substr(f,
2),16)<<24-4*(f%8);return new d.init(m,a/2)}},a=t.Latin1={stringify:function(c){var a=c.words;c=c.sigBytes;for(var m=[],f=0;f<c;f++)m.push(String.fromCharCode(a[f>>>2]>>>24-8*(f%4)&255));return m.join("")},parse:function(c){for(var a=c.length,m=[],f=0;f<a;f++)m[f>>>2]|=(c.charCodeAt(f)&255)<<24-8*(f%4);return new d.init(m,a)}},v=t.Utf8={stringify:function(c){try{return decodeURIComponent(escape(a.stringify(c)))}catch(u){throw Error("Malformed UTF-8 data");}},parse:function(c){return a.parse(unescape(encodeURIComponent(c)))}},
u=n.BufferedBlockAlgorithm=b.extend({reset:function(){this._data=new d.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=v.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var u=this._data,m=u.words,f=u.sigBytes,r=this.blockSize,e=f/(4*r),e=a?s.ceil(e):s.max((e|0)-this._minBufferSize,0);a=e*r;f=s.min(4*a,f);if(a){for(var b=0;b<a;b+=r)this._doProcessBlock(m,b);b=m.splice(0,a);u.sigBytes-=f}return new d.init(b,f)},clone:function(){var a=b.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});n.Hasher=u.extend({cfg:b.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){u.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(u,m){return(new a.init(m)).finalize(u)}},_createHmacHelper:function(a){return function(u,m){return(new w.HMAC.init(a,
m)).finalize(u)}}});var w=e.algo={};return e}(Math);
(function(){var s=CryptoJS,l=s.lib.WordArray;s.enc.Base64={stringify:function(e){var n=e.words,l=e.sigBytes,b=this._map;e.clamp();e=[];for(var d=0;d<l;d+=3)for(var t=(n[d>>>2]>>>24-8*(d%4)&255)<<16|(n[d+1>>>2]>>>24-8*((d+1)%4)&255)<<8|n[d+2>>>2]>>>24-8*((d+2)%4)&255,q=0;4>q&&d+0.75*q<l;q++)e.push(b.charAt(t>>>6*(3-q)&63));if(n=b.charAt(64))for(;e.length%4;)e.push(n);return e.join("")},parse:function(e){var n=e.length,p=this._map,b=p.charAt(64);b&&(b=e.indexOf(b),-1!=b&&(n=b));for(var b=[],d=0,t=0;t<
n;t++)if(t%4){var q=p.indexOf(e.charAt(t-1))<<2*(t%4),a=p.indexOf(e.charAt(t))>>>6-2*(t%4);b[d>>>2]|=(q|a)<<24-8*(d%4);d++}return l.create(b,d)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();
(function(s){function l(a,b,c,e,m,f,r){a=a+(b&c|~b&e)+m+r;return(a<<f|a>>>32-f)+b}function e(a,b,c,e,m,f,r){a=a+(b&e|c&~e)+m+r;return(a<<f|a>>>32-f)+b}function n(a,b,c,e,m,f,r){a=a+(b^c^e)+m+r;return(a<<f|a>>>32-f)+b}function p(a,b,c,e,m,f,r){a=a+(c^(b|~e))+m+r;return(a<<f|a>>>32-f)+b}for(var b=CryptoJS,d=b.lib,t=d.WordArray,q=d.Hasher,d=b.algo,a=[],v=0;64>v;v++)a[v]=4294967296*s.abs(s.sin(v+1))|0;d=d.MD5=q.extend({_doReset:function(){this._hash=new t.init([1732584193,4023233417,2562383102,271733878])},
_doProcessBlock:function(b,d){for(var c=0;16>c;c++){var q=d+c,m=b[q];b[q]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360}var c=this._hash.words,q=b[d+0],m=b[d+1],f=b[d+2],r=b[d+3],x=b[d+4],t=b[d+5],s=b[d+6],v=b[d+7],y=b[d+8],z=b[d+9],A=b[d+10],B=b[d+11],C=b[d+12],D=b[d+13],E=b[d+14],F=b[d+15],g=c[0],h=c[1],j=c[2],k=c[3],g=l(g,h,j,k,q,7,a[0]),k=l(k,g,h,j,m,12,a[1]),j=l(j,k,g,h,f,17,a[2]),h=l(h,j,k,g,r,22,a[3]),g=l(g,h,j,k,x,7,a[4]),k=l(k,g,h,j,t,12,a[5]),j=l(j,k,g,h,s,17,a[6]),h=l(h,j,k,g,v,22,a[7]),
g=l(g,h,j,k,y,7,a[8]),k=l(k,g,h,j,z,12,a[9]),j=l(j,k,g,h,A,17,a[10]),h=l(h,j,k,g,B,22,a[11]),g=l(g,h,j,k,C,7,a[12]),k=l(k,g,h,j,D,12,a[13]),j=l(j,k,g,h,E,17,a[14]),h=l(h,j,k,g,F,22,a[15]),g=e(g,h,j,k,m,5,a[16]),k=e(k,g,h,j,s,9,a[17]),j=e(j,k,g,h,B,14,a[18]),h=e(h,j,k,g,q,20,a[19]),g=e(g,h,j,k,t,5,a[20]),k=e(k,g,h,j,A,9,a[21]),j=e(j,k,g,h,F,14,a[22]),h=e(h,j,k,g,x,20,a[23]),g=e(g,h,j,k,z,5,a[24]),k=e(k,g,h,j,E,9,a[25]),j=e(j,k,g,h,r,14,a[26]),h=e(h,j,k,g,y,20,a[27]),g=e(g,h,j,k,D,5,a[28]),k=e(k,g,
h,j,f,9,a[29]),j=e(j,k,g,h,v,14,a[30]),h=e(h,j,k,g,C,20,a[31]),g=n(g,h,j,k,t,4,a[32]),k=n(k,g,h,j,y,11,a[33]),j=n(j,k,g,h,B,16,a[34]),h=n(h,j,k,g,E,23,a[35]),g=n(g,h,j,k,m,4,a[36]),k=n(k,g,h,j,x,11,a[37]),j=n(j,k,g,h,v,16,a[38]),h=n(h,j,k,g,A,23,a[39]),g=n(g,h,j,k,D,4,a[40]),k=n(k,g,h,j,q,11,a[41]),j=n(j,k,g,h,r,16,a[42]),h=n(h,j,k,g,s,23,a[43]),g=n(g,h,j,k,z,4,a[44]),k=n(k,g,h,j,C,11,a[45]),j=n(j,k,g,h,F,16,a[46]),h=n(h,j,k,g,f,23,a[47]),g=p(g,h,j,k,q,6,a[48]),k=p(k,g,h,j,v,10,a[49]),j=p(j,k,g,h,
E,15,a[50]),h=p(h,j,k,g,t,21,a[51]),g=p(g,h,j,k,C,6,a[52]),k=p(k,g,h,j,r,10,a[53]),j=p(j,k,g,h,A,15,a[54]),h=p(h,j,k,g,m,21,a[55]),g=p(g,h,j,k,y,6,a[56]),k=p(k,g,h,j,F,10,a[57]),j=p(j,k,g,h,s,15,a[58]),h=p(h,j,k,g,D,21,a[59]),g=p(g,h,j,k,x,6,a[60]),k=p(k,g,h,j,B,10,a[61]),j=p(j,k,g,h,f,15,a[62]),h=p(h,j,k,g,z,21,a[63]);c[0]=c[0]+g|0;c[1]=c[1]+h|0;c[2]=c[2]+j|0;c[3]=c[3]+k|0},_doFinalize:function(){var a=this._data,b=a.words,c=8*this._nDataBytes,d=8*a.sigBytes;b[d>>>5]|=128<<24-d%32;var m=s.floor(c/
4294967296);b[(d+64>>>9<<4)+15]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360;b[(d+64>>>9<<4)+14]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;a.sigBytes=4*(b.length+1);this._process();a=this._hash;b=a.words;for(c=0;4>c;c++)d=b[c],b[c]=(d<<8|d>>>24)&16711935|(d<<24|d>>>8)&4278255360;return a},clone:function(){var a=q.clone.call(this);a._hash=this._hash.clone();return a}});b.MD5=q._createHelper(d);b.HmacMD5=q._createHmacHelper(d)})(Math);
(function(){var s=CryptoJS,l=s.lib,e=l.Base,n=l.WordArray,l=s.algo,p=l.EvpKDF=e.extend({cfg:e.extend({keySize:4,hasher:l.MD5,iterations:1}),init:function(b){this.cfg=this.cfg.extend(b)},compute:function(b,d){for(var e=this.cfg,q=e.hasher.create(),a=n.create(),l=a.words,p=e.keySize,e=e.iterations;l.length<p;){s&&q.update(s);var s=q.update(b).finalize(d);q.reset();for(var c=1;c<e;c++)s=q.finalize(s),q.reset();a.concat(s)}a.sigBytes=4*p;return a}});s.EvpKDF=function(b,d,e){return p.create(e).compute(b,
d)}})();
CryptoJS.lib.Cipher||function(s){var l=CryptoJS,e=l.lib,n=e.Base,p=e.WordArray,b=e.BufferedBlockAlgorithm,d=l.enc.Base64,t=l.algo.EvpKDF,q=e.Cipher=b.extend({cfg:n.extend(),createEncryptor:function(a,f){return this.create(this._ENC_XFORM_MODE,a,f)},createDecryptor:function(a,f){return this.create(this._DEC_XFORM_MODE,a,f)},init:function(a,f,c){this.cfg=this.cfg.extend(c);this._xformMode=a;this._key=f;this.reset()},reset:function(){b.reset.call(this);this._doReset()},process:function(a){this._append(a);return this._process()},
finalize:function(a){a&&this._append(a);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(a){return{encrypt:function(f,b,d){return("string"==typeof b?G:c).encrypt(a,f,b,d)},decrypt:function(f,b,d){return("string"==typeof b?G:c).decrypt(a,f,b,d)}}}});e.StreamCipher=q.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var a=l.mode={},v=function(a,f,b){var c=this._iv;c?this._iv=s:c=this._prevBlock;for(var d=0;d<b;d++)a[f+d]^=
c[d]},u=(e.BlockCipherMode=n.extend({createEncryptor:function(a,f){return this.Encryptor.create(a,f)},createDecryptor:function(a,f){return this.Decryptor.create(a,f)},init:function(a,f){this._cipher=a;this._iv=f}})).extend();u.Encryptor=u.extend({processBlock:function(a,f){var b=this._cipher,c=b.blockSize;v.call(this,a,f,c);b.encryptBlock(a,f);this._prevBlock=a.slice(f,f+c)}});u.Decryptor=u.extend({processBlock:function(a,f){var b=this._cipher,c=b.blockSize,d=a.slice(f,f+c);b.decryptBlock(a,f);v.call(this,
a,f,c);this._prevBlock=d}});a=a.CBC=u;u=(l.pad={}).Pkcs7={pad:function(a,f){for(var b=4*f,b=b-a.sigBytes%b,c=b<<24|b<<16|b<<8|b,d=[],e=0;e<b;e+=4)d.push(c);b=p.create(d,b);a.concat(b)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};e.BlockCipher=q.extend({cfg:q.cfg.extend({mode:a,padding:u}),reset:function(){q.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,
this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var w=e.CipherParams=n.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),a=(l.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;return(a?p.create([1398893684,
1701076831]).concat(a).concat(b):b).toString(d)},parse:function(a){a=d.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=p.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return w.create({ciphertext:a,salt:c})}},c=e.SerializableCipher=n.extend({cfg:n.extend({format:a}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var e=a.createEncryptor(c,d);b=e.finalize(b);e=e.cfg;return w.create({ciphertext:b,key:c,iv:e.iv,algorithm:a,mode:e.mode,padding:e.padding,blockSize:a.blockSize,formatter:d.format})},
decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),l=(l.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=p.random(8));a=t.create({keySize:b+c}).compute(a,d);c=p.create(a.words.slice(b),4*c);a.sigBytes=4*b;return w.create({key:a,iv:c,salt:d})}},G=e.PasswordBasedCipher=c.extend({cfg:c.cfg.extend({kdf:l}),encrypt:function(a,b,d,e){e=this.cfg.extend(e);d=e.kdf.execute(d,
a.keySize,a.ivSize);e.iv=d.iv;a=c.encrypt.call(this,a,b,d.key,e);a.mixIn(d);return a},decrypt:function(a,b,d,e){e=this.cfg.extend(e);b=this._parse(b,e.format);d=e.kdf.execute(d,a.keySize,a.ivSize,b.salt);e.iv=d.iv;return c.decrypt.call(this,a,b,d.key,e)}})}();
(function(){function s(){for(var b=this._S,d=this._i,e=this._j,q=0,a=0;4>a;a++){var d=(d+1)%256,e=(e+b[d])%256,l=b[d];b[d]=b[e];b[e]=l;q|=b[(b[d]+b[e])%256]<<24-8*a}this._i=d;this._j=e;return q}var l=CryptoJS,e=l.lib.StreamCipher,n=l.algo,p=n.RC4=e.extend({_doReset:function(){for(var b=this._key,d=b.words,b=b.sigBytes,e=this._S=[],l=0;256>l;l++)e[l]=l;for(var a=l=0;256>l;l++){var n=l%b,a=(a+e[l]+(d[n>>>2]>>>24-8*(n%4)&255))%256,n=e[l];e[l]=e[a];e[a]=n}this._i=this._j=0},_doProcessBlock:function(b,
d){b[d]^=s.call(this)},keySize:8,ivSize:0});l.RC4=e._createHelper(p);n=n.RC4Drop=p.extend({cfg:p.cfg.extend({drop:192}),_doReset:function(){p._doReset.call(this);for(var b=this.cfg.drop;0<b;b--)s.call(this)}});l.RC4Drop=e._createHelper(n)})();

View File

@@ -0,0 +1,29 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
/*
(c) 2012 by C?dric Mesnil. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
CryptoJS=CryptoJS||function(j,k){var e={},l=e.lib={},z=function(){},t=l.Base={extend:function(a){z.prototype=this;var c=new z;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
u=l.WordArray=t.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=k?c:4*a.length},toString:function(a){return(a||D).stringify(this)},concat:function(a){var c=this.words,h=a.words,d=this.sigBytes;a=a.sigBytes;this.clamp();if(d%4)for(var b=0;b<a;b++)c[d+b>>>2]|=(h[b>>>2]>>>24-8*(b%4)&255)<<24-8*((d+b)%4);else if(65535<h.length)for(b=0;b<a;b+=4)c[d+b>>>2]=h[b>>>2];else c.push.apply(c,h);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
32-8*(c%4);a.length=j.ceil(c/4)},clone:function(){var a=t.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],b=0;b<a;b+=4)c.push(4294967296*j.random()|0);return new u.init(c,a)}}),w=e.enc={},D=w.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],d=0;d<a;d++){var g=c[d>>>2]>>>24-8*(d%4)&255;b.push((g>>>4).toString(16));b.push((g&15).toString(16))}return b.join("")},parse:function(a){for(var c=a.length,b=[],d=0;d<c;d+=2)b[d>>>3]|=parseInt(a.substr(d,
2),16)<<24-4*(d%8);return new u.init(b,c/2)}},A=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],d=0;d<a;d++)b.push(String.fromCharCode(c[d>>>2]>>>24-8*(d%4)&255));return b.join("")},parse:function(a){for(var b=a.length,h=[],d=0;d<b;d++)h[d>>>2]|=(a.charCodeAt(d)&255)<<24-8*(d%4);return new u.init(h,b)}},g=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(A.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return A.parse(unescape(encodeURIComponent(a)))}},
v=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new u.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=g.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var b=this._data,h=b.words,d=b.sigBytes,g=this.blockSize,v=d/(4*g),v=a?j.ceil(v):j.max((v|0)-this._minBufferSize,0);a=v*g;d=j.min(4*a,d);if(a){for(var e=0;e<a;e+=g)this._doProcessBlock(h,e);e=h.splice(0,a);b.sigBytes-=d}return new u.init(e,d)},clone:function(){var a=t.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});l.Hasher=v.extend({cfg:t.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){v.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,g){return(new a.init(g)).finalize(b)}},_createHmacHelper:function(a){return function(c,g){return(new b.HMAC.init(a,
g)).finalize(c)}}});var b=e.algo={};return e}(Math);
(function(){var j=CryptoJS,k=j.lib,e=k.WordArray,l=k.Hasher,k=j.algo,z=e.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),t=e.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),u=e.create([11,14,15,12,
5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),w=e.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),D=e.create([0,1518500249,1859775393,2400959708,2840853838]),A=e.create([1352829926,1548603684,1836072691,
2053994217,0]),k=k.RIPEMD160=l.extend({_doReset:function(){this._hash=e.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(g,e){for(var b=0;16>b;b++){var a=e+b,c=g[a];g[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360}var a=this._hash.words,c=D.words,h=A.words,d=z.words,j=t.words,k=u.words,l=w.words,B,m,n,p,x,C,q,r,s,y;C=B=a[0];q=m=a[1];r=n=a[2];s=p=a[3];y=x=a[4];for(var f,b=0;80>b;b+=1)f=B+g[e+d[b]]|0,f=16>b?f+((m^n^p)+c[0]):32>b?f+((m&n|~m&p)+c[1]):48>b?
f+(((m|~n)^p)+c[2]):64>b?f+((m&p|n&~p)+c[3]):f+((m^(n|~p))+c[4]),f|=0,f=f<<k[b]|f>>>32-k[b],f=f+x|0,B=x,x=p,p=n<<10|n>>>22,n=m,m=f,f=C+g[e+j[b]]|0,f=16>b?f+((q^(r|~s))+h[0]):32>b?f+((q&s|r&~s)+h[1]):48>b?f+(((q|~r)^s)+h[2]):64>b?f+((q&r|~q&s)+h[3]):f+((q^r^s)+h[4]),f|=0,f=f<<l[b]|f>>>32-l[b],f=f+y|0,C=y,y=s,s=r<<10|r>>>22,r=q,q=f;f=a[1]+n+s|0;a[1]=a[2]+p+y|0;a[2]=a[3]+x+C|0;a[3]=a[4]+B+q|0;a[4]=a[0]+m+r|0;a[0]=f},_doFinalize:function(){var g=this._data,e=g.words,b=8*this._nDataBytes,a=8*g.sigBytes;
e[a>>>5]|=128<<24-a%32;e[(a+64>>>9<<4)+14]=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360;g.sigBytes=4*(e.length+1);this._process();g=this._hash;e=g.words;for(b=0;5>b;b++)a=e[b],e[b]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;return g},clone:function(){var e=l.clone.call(this);e._hash=this._hash.clone();return e}});j.RIPEMD160=l._createHelper(k);j.HmacRIPEMD160=l._createHmacHelper(k)})(Math);

15
data/js/cryptojs/sha1.js Normal file
View File

@@ -0,0 +1,15 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(e,m){var p={},j=p.lib={},l=function(){},f=j.Base={extend:function(a){l.prototype=this;var c=new l;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
n=j.WordArray=f.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=m?c:4*a.length},toString:function(a){return(a||h).stringify(this)},concat:function(a){var c=this.words,q=a.words,d=this.sigBytes;a=a.sigBytes;this.clamp();if(d%4)for(var b=0;b<a;b++)c[d+b>>>2]|=(q[b>>>2]>>>24-8*(b%4)&255)<<24-8*((d+b)%4);else if(65535<q.length)for(b=0;b<a;b+=4)c[d+b>>>2]=q[b>>>2];else c.push.apply(c,q);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
32-8*(c%4);a.length=e.ceil(c/4)},clone:function(){var a=f.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],b=0;b<a;b+=4)c.push(4294967296*e.random()|0);return new n.init(c,a)}}),b=p.enc={},h=b.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],d=0;d<a;d++){var f=c[d>>>2]>>>24-8*(d%4)&255;b.push((f>>>4).toString(16));b.push((f&15).toString(16))}return b.join("")},parse:function(a){for(var c=a.length,b=[],d=0;d<c;d+=2)b[d>>>3]|=parseInt(a.substr(d,
2),16)<<24-4*(d%8);return new n.init(b,c/2)}},g=b.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var b=[],d=0;d<a;d++)b.push(String.fromCharCode(c[d>>>2]>>>24-8*(d%4)&255));return b.join("")},parse:function(a){for(var c=a.length,b=[],d=0;d<c;d++)b[d>>>2]|=(a.charCodeAt(d)&255)<<24-8*(d%4);return new n.init(b,c)}},r=b.Utf8={stringify:function(a){try{return decodeURIComponent(escape(g.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return g.parse(unescape(encodeURIComponent(a)))}},
k=j.BufferedBlockAlgorithm=f.extend({reset:function(){this._data=new n.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=r.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,b=c.words,d=c.sigBytes,f=this.blockSize,h=d/(4*f),h=a?e.ceil(h):e.max((h|0)-this._minBufferSize,0);a=h*f;d=e.min(4*a,d);if(a){for(var g=0;g<a;g+=f)this._doProcessBlock(b,g);g=b.splice(0,a);c.sigBytes-=d}return new n.init(g,d)},clone:function(){var a=f.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});j.Hasher=k.extend({cfg:f.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){k.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(c,b){return(new a.init(b)).finalize(c)}},_createHmacHelper:function(a){return function(b,f){return(new s.HMAC.init(a,
f)).finalize(b)}}});var s=p.algo={};return p}(Math);
(function(){var e=CryptoJS,m=e.lib,p=m.WordArray,j=m.Hasher,l=[],m=e.algo.SHA1=j.extend({_doReset:function(){this._hash=new p.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(f,n){for(var b=this._hash.words,h=b[0],g=b[1],e=b[2],k=b[3],j=b[4],a=0;80>a;a++){if(16>a)l[a]=f[n+a]|0;else{var c=l[a-3]^l[a-8]^l[a-14]^l[a-16];l[a]=c<<1|c>>>31}c=(h<<5|h>>>27)+j+l[a];c=20>a?c+((g&e|~g&k)+1518500249):40>a?c+((g^e^k)+1859775393):60>a?c+((g&e|g&k|e&k)-1894007588):c+((g^e^
k)-899497514);j=k;k=e;e=g<<30|g>>>2;g=h;h=c}b[0]=b[0]+h|0;b[1]=b[1]+g|0;b[2]=b[2]+e|0;b[3]=b[3]+k|0;b[4]=b[4]+j|0},_doFinalize:function(){var f=this._data,e=f.words,b=8*this._nDataBytes,h=8*f.sigBytes;e[h>>>5]|=128<<24-h%32;e[(h+64>>>9<<4)+14]=Math.floor(b/4294967296);e[(h+64>>>9<<4)+15]=b;f.sigBytes=4*e.length;this._process();return this._hash},clone:function(){var e=j.clone.call(this);e._hash=this._hash.clone();return e}});e.SHA1=j._createHelper(m);e.HmacSHA1=j._createHmacHelper(m)})();

View File

@@ -0,0 +1,17 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(g,l){var f={},k=f.lib={},h=function(){},m=k.Base={extend:function(a){h.prototype=this;var c=new h;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
q=k.WordArray=m.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=l?c:4*a.length},toString:function(a){return(a||s).stringify(this)},concat:function(a){var c=this.words,d=a.words,b=this.sigBytes;a=a.sigBytes;this.clamp();if(b%4)for(var e=0;e<a;e++)c[b+e>>>2]|=(d[e>>>2]>>>24-8*(e%4)&255)<<24-8*((b+e)%4);else if(65535<d.length)for(e=0;e<a;e+=4)c[b+e>>>2]=d[e>>>2];else c.push.apply(c,d);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
32-8*(c%4);a.length=g.ceil(c/4)},clone:function(){var a=m.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],d=0;d<a;d+=4)c.push(4294967296*g.random()|0);return new q.init(c,a)}}),t=f.enc={},s=t.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var d=[],b=0;b<a;b++){var e=c[b>>>2]>>>24-8*(b%4)&255;d.push((e>>>4).toString(16));d.push((e&15).toString(16))}return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b<c;b+=2)d[b>>>3]|=parseInt(a.substr(b,
2),16)<<24-4*(b%8);return new q.init(d,c/2)}},n=t.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var d=[],b=0;b<a;b++)d.push(String.fromCharCode(c[b>>>2]>>>24-8*(b%4)&255));return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b<c;b++)d[b>>>2]|=(a.charCodeAt(b)&255)<<24-8*(b%4);return new q.init(d,c)}},j=t.Utf8={stringify:function(a){try{return decodeURIComponent(escape(n.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return n.parse(unescape(encodeURIComponent(a)))}},
w=k.BufferedBlockAlgorithm=m.extend({reset:function(){this._data=new q.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=j.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,d=c.words,b=c.sigBytes,e=this.blockSize,f=b/(4*e),f=a?g.ceil(f):g.max((f|0)-this._minBufferSize,0);a=f*e;b=g.min(4*a,b);if(a){for(var u=0;u<a;u+=e)this._doProcessBlock(d,u);u=d.splice(0,a);c.sigBytes-=b}return new q.init(u,b)},clone:function(){var a=m.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});k.Hasher=w.extend({cfg:m.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){w.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(c,d){return(new a.init(d)).finalize(c)}},_createHmacHelper:function(a){return function(c,d){return(new v.HMAC.init(a,
d)).finalize(c)}}});var v=f.algo={};return f}(Math);
(function(g){for(var l=CryptoJS,f=l.lib,k=f.WordArray,h=f.Hasher,f=l.algo,m=[],q=[],t=function(a){return 4294967296*(a-(a|0))|0},s=2,n=0;64>n;){var j;a:{j=s;for(var w=g.sqrt(j),v=2;v<=w;v++)if(!(j%v)){j=!1;break a}j=!0}j&&(8>n&&(m[n]=t(g.pow(s,0.5))),q[n]=t(g.pow(s,1/3)),n++);s++}var a=[],f=f.SHA256=h.extend({_doReset:function(){this._hash=new k.init(m.slice(0))},_doProcessBlock:function(c,d){for(var b=this._hash.words,e=b[0],f=b[1],g=b[2],k=b[3],h=b[4],l=b[5],m=b[6],n=b[7],p=0;64>p;p++){if(16>p)a[p]=
c[d+p]|0;else{var j=a[p-15],r=a[p-2];a[p]=((j<<25|j>>>7)^(j<<14|j>>>18)^j>>>3)+a[p-7]+((r<<15|r>>>17)^(r<<13|r>>>19)^r>>>10)+a[p-16]}j=n+((h<<26|h>>>6)^(h<<21|h>>>11)^(h<<7|h>>>25))+(h&l^~h&m)+q[p]+a[p];r=((e<<30|e>>>2)^(e<<19|e>>>13)^(e<<10|e>>>22))+(e&f^e&g^f&g);n=m;m=l;l=h;h=k+j|0;k=g;g=f;f=e;e=j+r|0}b[0]=b[0]+e|0;b[1]=b[1]+f|0;b[2]=b[2]+g|0;b[3]=b[3]+k|0;b[4]=b[4]+h|0;b[5]=b[5]+l|0;b[6]=b[6]+m|0;b[7]=b[7]+n|0},_doFinalize:function(){var a=this._data,d=a.words,b=8*this._nDataBytes,e=8*a.sigBytes;
d[e>>>5]|=128<<24-e%32;d[(e+64>>>9<<4)+14]=g.floor(b/4294967296);d[(e+64>>>9<<4)+15]=b;a.sigBytes=4*d.length;this._process();return this._hash},clone:function(){var a=h.clone.call(this);a._hash=this._hash.clone();return a}});l.SHA256=h._createHelper(f);l.HmacSHA256=h._createHmacHelper(f)})(Math);
(function(){var g=CryptoJS,l=g.lib.WordArray,f=g.algo,k=f.SHA256,f=f.SHA224=k.extend({_doReset:function(){this._hash=new l.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var f=k._doFinalize.call(this);f.sigBytes-=4;return f}});g.SHA224=k._createHelper(f);g.HmacSHA224=k._createHmacHelper(f)})();

View File

@@ -0,0 +1,16 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(h,s){var f={},t=f.lib={},g=function(){},j=t.Base={extend:function(a){g.prototype=this;var c=new g;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
q=t.WordArray=j.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=s?c:4*a.length},toString:function(a){return(a||u).stringify(this)},concat:function(a){var c=this.words,d=a.words,b=this.sigBytes;a=a.sigBytes;this.clamp();if(b%4)for(var e=0;e<a;e++)c[b+e>>>2]|=(d[e>>>2]>>>24-8*(e%4)&255)<<24-8*((b+e)%4);else if(65535<d.length)for(e=0;e<a;e+=4)c[b+e>>>2]=d[e>>>2];else c.push.apply(c,d);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
32-8*(c%4);a.length=h.ceil(c/4)},clone:function(){var a=j.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],d=0;d<a;d+=4)c.push(4294967296*h.random()|0);return new q.init(c,a)}}),v=f.enc={},u=v.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var d=[],b=0;b<a;b++){var e=c[b>>>2]>>>24-8*(b%4)&255;d.push((e>>>4).toString(16));d.push((e&15).toString(16))}return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b<c;b+=2)d[b>>>3]|=parseInt(a.substr(b,
2),16)<<24-4*(b%8);return new q.init(d,c/2)}},k=v.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var d=[],b=0;b<a;b++)d.push(String.fromCharCode(c[b>>>2]>>>24-8*(b%4)&255));return d.join("")},parse:function(a){for(var c=a.length,d=[],b=0;b<c;b++)d[b>>>2]|=(a.charCodeAt(b)&255)<<24-8*(b%4);return new q.init(d,c)}},l=v.Utf8={stringify:function(a){try{return decodeURIComponent(escape(k.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return k.parse(unescape(encodeURIComponent(a)))}},
x=t.BufferedBlockAlgorithm=j.extend({reset:function(){this._data=new q.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=l.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,d=c.words,b=c.sigBytes,e=this.blockSize,f=b/(4*e),f=a?h.ceil(f):h.max((f|0)-this._minBufferSize,0);a=f*e;b=h.min(4*a,b);if(a){for(var m=0;m<a;m+=e)this._doProcessBlock(d,m);m=d.splice(0,a);c.sigBytes-=b}return new q.init(m,b)},clone:function(){var a=j.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});t.Hasher=x.extend({cfg:j.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){x.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(c,d){return(new a.init(d)).finalize(c)}},_createHmacHelper:function(a){return function(c,d){return(new w.HMAC.init(a,
d)).finalize(c)}}});var w=f.algo={};return f}(Math);
(function(h){for(var s=CryptoJS,f=s.lib,t=f.WordArray,g=f.Hasher,f=s.algo,j=[],q=[],v=function(a){return 4294967296*(a-(a|0))|0},u=2,k=0;64>k;){var l;a:{l=u;for(var x=h.sqrt(l),w=2;w<=x;w++)if(!(l%w)){l=!1;break a}l=!0}l&&(8>k&&(j[k]=v(h.pow(u,0.5))),q[k]=v(h.pow(u,1/3)),k++);u++}var a=[],f=f.SHA256=g.extend({_doReset:function(){this._hash=new t.init(j.slice(0))},_doProcessBlock:function(c,d){for(var b=this._hash.words,e=b[0],f=b[1],m=b[2],h=b[3],p=b[4],j=b[5],k=b[6],l=b[7],n=0;64>n;n++){if(16>n)a[n]=
c[d+n]|0;else{var r=a[n-15],g=a[n-2];a[n]=((r<<25|r>>>7)^(r<<14|r>>>18)^r>>>3)+a[n-7]+((g<<15|g>>>17)^(g<<13|g>>>19)^g>>>10)+a[n-16]}r=l+((p<<26|p>>>6)^(p<<21|p>>>11)^(p<<7|p>>>25))+(p&j^~p&k)+q[n]+a[n];g=((e<<30|e>>>2)^(e<<19|e>>>13)^(e<<10|e>>>22))+(e&f^e&m^f&m);l=k;k=j;j=p;p=h+r|0;h=m;m=f;f=e;e=r+g|0}b[0]=b[0]+e|0;b[1]=b[1]+f|0;b[2]=b[2]+m|0;b[3]=b[3]+h|0;b[4]=b[4]+p|0;b[5]=b[5]+j|0;b[6]=b[6]+k|0;b[7]=b[7]+l|0},_doFinalize:function(){var a=this._data,d=a.words,b=8*this._nDataBytes,e=8*a.sigBytes;
d[e>>>5]|=128<<24-e%32;d[(e+64>>>9<<4)+14]=h.floor(b/4294967296);d[(e+64>>>9<<4)+15]=b;a.sigBytes=4*d.length;this._process();return this._hash},clone:function(){var a=g.clone.call(this);a._hash=this._hash.clone();return a}});s.SHA256=g._createHelper(f);s.HmacSHA256=g._createHmacHelper(f)})(Math);

19
data/js/cryptojs/sha3.js Normal file
View File

@@ -0,0 +1,19 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(v,p){var d={},u=d.lib={},r=function(){},f=u.Base={extend:function(a){r.prototype=this;var b=new r;a&&b.mixIn(a);b.hasOwnProperty("init")||(b.init=function(){b.$super.init.apply(this,arguments)});b.init.prototype=b;b.$super=this;return b},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
s=u.WordArray=f.extend({init:function(a,b){a=this.words=a||[];this.sigBytes=b!=p?b:4*a.length},toString:function(a){return(a||y).stringify(this)},concat:function(a){var b=this.words,c=a.words,j=this.sigBytes;a=a.sigBytes;this.clamp();if(j%4)for(var n=0;n<a;n++)b[j+n>>>2]|=(c[n>>>2]>>>24-8*(n%4)&255)<<24-8*((j+n)%4);else if(65535<c.length)for(n=0;n<a;n+=4)b[j+n>>>2]=c[n>>>2];else b.push.apply(b,c);this.sigBytes+=a;return this},clamp:function(){var a=this.words,b=this.sigBytes;a[b>>>2]&=4294967295<<
32-8*(b%4);a.length=v.ceil(b/4)},clone:function(){var a=f.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var b=[],c=0;c<a;c+=4)b.push(4294967296*v.random()|0);return new s.init(b,a)}}),x=d.enc={},y=x.Hex={stringify:function(a){var b=a.words;a=a.sigBytes;for(var c=[],j=0;j<a;j++){var n=b[j>>>2]>>>24-8*(j%4)&255;c.push((n>>>4).toString(16));c.push((n&15).toString(16))}return c.join("")},parse:function(a){for(var b=a.length,c=[],j=0;j<b;j+=2)c[j>>>3]|=parseInt(a.substr(j,
2),16)<<24-4*(j%8);return new s.init(c,b/2)}},e=x.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var c=[],j=0;j<a;j++)c.push(String.fromCharCode(b[j>>>2]>>>24-8*(j%4)&255));return c.join("")},parse:function(a){for(var b=a.length,c=[],j=0;j<b;j++)c[j>>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return new s.init(c,b)}},q=x.Utf8={stringify:function(a){try{return decodeURIComponent(escape(e.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return e.parse(unescape(encodeURIComponent(a)))}},
t=u.BufferedBlockAlgorithm=f.extend({reset:function(){this._data=new s.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=q.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var b=this._data,c=b.words,j=b.sigBytes,n=this.blockSize,e=j/(4*n),e=a?v.ceil(e):v.max((e|0)-this._minBufferSize,0);a=e*n;j=v.min(4*a,j);if(a){for(var f=0;f<a;f+=n)this._doProcessBlock(c,f);f=c.splice(0,a);b.sigBytes-=j}return new s.init(f,j)},clone:function(){var a=f.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});u.Hasher=t.extend({cfg:f.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){t.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,c){return(new a.init(c)).finalize(b)}},_createHmacHelper:function(a){return function(b,c){return(new w.HMAC.init(a,
c)).finalize(b)}}});var w=d.algo={};return d}(Math);
(function(v){var p=CryptoJS,d=p.lib,u=d.Base,r=d.WordArray,p=p.x64={};p.Word=u.extend({init:function(f,s){this.high=f;this.low=s}});p.WordArray=u.extend({init:function(f,s){f=this.words=f||[];this.sigBytes=s!=v?s:8*f.length},toX32:function(){for(var f=this.words,s=f.length,d=[],p=0;p<s;p++){var e=f[p];d.push(e.high);d.push(e.low)}return r.create(d,this.sigBytes)},clone:function(){for(var f=u.clone.call(this),d=f.words=this.words.slice(0),p=d.length,r=0;r<p;r++)d[r]=d[r].clone();return f}})})();
(function(v){for(var p=CryptoJS,d=p.lib,u=d.WordArray,r=d.Hasher,f=p.x64.Word,d=p.algo,s=[],x=[],y=[],e=1,q=0,t=0;24>t;t++){s[e+5*q]=(t+1)*(t+2)/2%64;var w=(2*e+3*q)%5,e=q%5,q=w}for(e=0;5>e;e++)for(q=0;5>q;q++)x[e+5*q]=q+5*((2*e+3*q)%5);e=1;for(q=0;24>q;q++){for(var a=w=t=0;7>a;a++){if(e&1){var b=(1<<a)-1;32>b?w^=1<<b:t^=1<<b-32}e=e&128?e<<1^113:e<<1}y[q]=f.create(t,w)}for(var c=[],e=0;25>e;e++)c[e]=f.create();d=d.SHA3=r.extend({cfg:r.cfg.extend({outputLength:512}),_doReset:function(){for(var a=this._state=
[],b=0;25>b;b++)a[b]=new f.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(a,b){for(var e=this._state,f=this.blockSize/2,h=0;h<f;h++){var l=a[b+2*h],m=a[b+2*h+1],l=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360,m=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360,g=e[h];g.high^=m;g.low^=l}for(f=0;24>f;f++){for(h=0;5>h;h++){for(var d=l=0,k=0;5>k;k++)g=e[h+5*k],l^=g.high,d^=g.low;g=c[h];g.high=l;g.low=d}for(h=0;5>h;h++){g=c[(h+4)%5];l=c[(h+1)%5];m=l.high;k=l.low;l=g.high^
(m<<1|k>>>31);d=g.low^(k<<1|m>>>31);for(k=0;5>k;k++)g=e[h+5*k],g.high^=l,g.low^=d}for(m=1;25>m;m++)g=e[m],h=g.high,g=g.low,k=s[m],32>k?(l=h<<k|g>>>32-k,d=g<<k|h>>>32-k):(l=g<<k-32|h>>>64-k,d=h<<k-32|g>>>64-k),g=c[x[m]],g.high=l,g.low=d;g=c[0];h=e[0];g.high=h.high;g.low=h.low;for(h=0;5>h;h++)for(k=0;5>k;k++)m=h+5*k,g=e[m],l=c[m],m=c[(h+1)%5+5*k],d=c[(h+2)%5+5*k],g.high=l.high^~m.high&d.high,g.low=l.low^~m.low&d.low;g=e[0];h=y[f];g.high^=h.high;g.low^=h.low}},_doFinalize:function(){var a=this._data,
b=a.words,c=8*a.sigBytes,e=32*this.blockSize;b[c>>>5]|=1<<24-c%32;b[(v.ceil((c+1)/e)*e>>>5)-1]|=128;a.sigBytes=4*b.length;this._process();for(var a=this._state,b=this.cfg.outputLength/8,c=b/8,e=[],h=0;h<c;h++){var d=a[h],f=d.high,d=d.low,f=(f<<8|f>>>24)&16711935|(f<<24|f>>>8)&4278255360,d=(d<<8|d>>>24)&16711935|(d<<24|d>>>8)&4278255360;e.push(d);e.push(f)}return new u.init(e,b)},clone:function(){for(var a=r.clone.call(this),b=a._state=this._state.slice(0),c=0;25>c;c++)b[c]=b[c].clone();return a}});
p.SHA3=r._createHelper(d);p.HmacSHA3=r._createHmacHelper(d)})(Math);

View File

@@ -0,0 +1,25 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(a,c){var d={},j=d.lib={},f=function(){},m=j.Base={extend:function(a){f.prototype=this;var b=new f;a&&b.mixIn(a);b.hasOwnProperty("init")||(b.init=function(){b.$super.init.apply(this,arguments)});b.init.prototype=b;b.$super=this;return b},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
B=j.WordArray=m.extend({init:function(a,b){a=this.words=a||[];this.sigBytes=b!=c?b:4*a.length},toString:function(a){return(a||y).stringify(this)},concat:function(a){var b=this.words,g=a.words,e=this.sigBytes;a=a.sigBytes;this.clamp();if(e%4)for(var k=0;k<a;k++)b[e+k>>>2]|=(g[k>>>2]>>>24-8*(k%4)&255)<<24-8*((e+k)%4);else if(65535<g.length)for(k=0;k<a;k+=4)b[e+k>>>2]=g[k>>>2];else b.push.apply(b,g);this.sigBytes+=a;return this},clamp:function(){var n=this.words,b=this.sigBytes;n[b>>>2]&=4294967295<<
32-8*(b%4);n.length=a.ceil(b/4)},clone:function(){var a=m.clone.call(this);a.words=this.words.slice(0);return a},random:function(n){for(var b=[],g=0;g<n;g+=4)b.push(4294967296*a.random()|0);return new B.init(b,n)}}),v=d.enc={},y=v.Hex={stringify:function(a){var b=a.words;a=a.sigBytes;for(var g=[],e=0;e<a;e++){var k=b[e>>>2]>>>24-8*(e%4)&255;g.push((k>>>4).toString(16));g.push((k&15).toString(16))}return g.join("")},parse:function(a){for(var b=a.length,g=[],e=0;e<b;e+=2)g[e>>>3]|=parseInt(a.substr(e,
2),16)<<24-4*(e%8);return new B.init(g,b/2)}},F=v.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var g=[],e=0;e<a;e++)g.push(String.fromCharCode(b[e>>>2]>>>24-8*(e%4)&255));return g.join("")},parse:function(a){for(var b=a.length,g=[],e=0;e<b;e++)g[e>>>2]|=(a.charCodeAt(e)&255)<<24-8*(e%4);return new B.init(g,b)}},ha=v.Utf8={stringify:function(a){try{return decodeURIComponent(escape(F.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return F.parse(unescape(encodeURIComponent(a)))}},
Z=j.BufferedBlockAlgorithm=m.extend({reset:function(){this._data=new B.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=ha.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(n){var b=this._data,g=b.words,e=b.sigBytes,k=this.blockSize,m=e/(4*k),m=n?a.ceil(m):a.max((m|0)-this._minBufferSize,0);n=m*k;e=a.min(4*n,e);if(n){for(var c=0;c<n;c+=k)this._doProcessBlock(g,c);c=g.splice(0,n);b.sigBytes-=e}return new B.init(c,e)},clone:function(){var a=m.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});j.Hasher=Z.extend({cfg:m.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){Z.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,g){return(new a.init(g)).finalize(b)}},_createHmacHelper:function(a){return function(b,g){return(new ia.HMAC.init(a,
g)).finalize(b)}}});var ia=d.algo={};return d}(Math);
(function(a){var c=CryptoJS,d=c.lib,j=d.Base,f=d.WordArray,c=c.x64={};c.Word=j.extend({init:function(a,c){this.high=a;this.low=c}});c.WordArray=j.extend({init:function(c,d){c=this.words=c||[];this.sigBytes=d!=a?d:8*c.length},toX32:function(){for(var a=this.words,c=a.length,d=[],j=0;j<c;j++){var F=a[j];d.push(F.high);d.push(F.low)}return f.create(d,this.sigBytes)},clone:function(){for(var a=j.clone.call(this),c=a.words=this.words.slice(0),d=c.length,f=0;f<d;f++)c[f]=c[f].clone();return a}})})();
(function(){function a(){return f.create.apply(f,arguments)}for(var c=CryptoJS,d=c.lib.Hasher,j=c.x64,f=j.Word,m=j.WordArray,j=c.algo,B=[a(1116352408,3609767458),a(1899447441,602891725),a(3049323471,3964484399),a(3921009573,2173295548),a(961987163,4081628472),a(1508970993,3053834265),a(2453635748,2937671579),a(2870763221,3664609560),a(3624381080,2734883394),a(310598401,1164996542),a(607225278,1323610764),a(1426881987,3590304994),a(1925078388,4068182383),a(2162078206,991336113),a(2614888103,633803317),
a(3248222580,3479774868),a(3835390401,2666613458),a(4022224774,944711139),a(264347078,2341262773),a(604807628,2007800933),a(770255983,1495990901),a(1249150122,1856431235),a(1555081692,3175218132),a(1996064986,2198950837),a(2554220882,3999719339),a(2821834349,766784016),a(2952996808,2566594879),a(3210313671,3203337956),a(3336571891,1034457026),a(3584528711,2466948901),a(113926993,3758326383),a(338241895,168717936),a(666307205,1188179964),a(773529912,1546045734),a(1294757372,1522805485),a(1396182291,
2643833823),a(1695183700,2343527390),a(1986661051,1014477480),a(2177026350,1206759142),a(2456956037,344077627),a(2730485921,1290863460),a(2820302411,3158454273),a(3259730800,3505952657),a(3345764771,106217008),a(3516065817,3606008344),a(3600352804,1432725776),a(4094571909,1467031594),a(275423344,851169720),a(430227734,3100823752),a(506948616,1363258195),a(659060556,3750685593),a(883997877,3785050280),a(958139571,3318307427),a(1322822218,3812723403),a(1537002063,2003034995),a(1747873779,3602036899),
a(1955562222,1575990012),a(2024104815,1125592928),a(2227730452,2716904306),a(2361852424,442776044),a(2428436474,593698344),a(2756734187,3733110249),a(3204031479,2999351573),a(3329325298,3815920427),a(3391569614,3928383900),a(3515267271,566280711),a(3940187606,3454069534),a(4118630271,4000239992),a(116418474,1914138554),a(174292421,2731055270),a(289380356,3203993006),a(460393269,320620315),a(685471733,587496836),a(852142971,1086792851),a(1017036298,365543100),a(1126000580,2618297676),a(1288033470,
3409855158),a(1501505948,4234509866),a(1607167915,987167468),a(1816402316,1246189591)],v=[],y=0;80>y;y++)v[y]=a();j=j.SHA512=d.extend({_doReset:function(){this._hash=new m.init([new f.init(1779033703,4089235720),new f.init(3144134277,2227873595),new f.init(1013904242,4271175723),new f.init(2773480762,1595750129),new f.init(1359893119,2917565137),new f.init(2600822924,725511199),new f.init(528734635,4215389547),new f.init(1541459225,327033209)])},_doProcessBlock:function(a,c){for(var d=this._hash.words,
f=d[0],j=d[1],b=d[2],g=d[3],e=d[4],k=d[5],m=d[6],d=d[7],y=f.high,M=f.low,$=j.high,N=j.low,aa=b.high,O=b.low,ba=g.high,P=g.low,ca=e.high,Q=e.low,da=k.high,R=k.low,ea=m.high,S=m.low,fa=d.high,T=d.low,s=y,p=M,G=$,D=N,H=aa,E=O,W=ba,I=P,t=ca,q=Q,U=da,J=R,V=ea,K=S,X=fa,L=T,u=0;80>u;u++){var z=v[u];if(16>u)var r=z.high=a[c+2*u]|0,h=z.low=a[c+2*u+1]|0;else{var r=v[u-15],h=r.high,w=r.low,r=(h>>>1|w<<31)^(h>>>8|w<<24)^h>>>7,w=(w>>>1|h<<31)^(w>>>8|h<<24)^(w>>>7|h<<25),C=v[u-2],h=C.high,l=C.low,C=(h>>>19|l<<
13)^(h<<3|l>>>29)^h>>>6,l=(l>>>19|h<<13)^(l<<3|h>>>29)^(l>>>6|h<<26),h=v[u-7],Y=h.high,A=v[u-16],x=A.high,A=A.low,h=w+h.low,r=r+Y+(h>>>0<w>>>0?1:0),h=h+l,r=r+C+(h>>>0<l>>>0?1:0),h=h+A,r=r+x+(h>>>0<A>>>0?1:0);z.high=r;z.low=h}var Y=t&U^~t&V,A=q&J^~q&K,z=s&G^s&H^G&H,ja=p&D^p&E^D&E,w=(s>>>28|p<<4)^(s<<30|p>>>2)^(s<<25|p>>>7),C=(p>>>28|s<<4)^(p<<30|s>>>2)^(p<<25|s>>>7),l=B[u],ka=l.high,ga=l.low,l=L+((q>>>14|t<<18)^(q>>>18|t<<14)^(q<<23|t>>>9)),x=X+((t>>>14|q<<18)^(t>>>18|q<<14)^(t<<23|q>>>9))+(l>>>0<
L>>>0?1:0),l=l+A,x=x+Y+(l>>>0<A>>>0?1:0),l=l+ga,x=x+ka+(l>>>0<ga>>>0?1:0),l=l+h,x=x+r+(l>>>0<h>>>0?1:0),h=C+ja,z=w+z+(h>>>0<C>>>0?1:0),X=V,L=K,V=U,K=J,U=t,J=q,q=I+l|0,t=W+x+(q>>>0<I>>>0?1:0)|0,W=H,I=E,H=G,E=D,G=s,D=p,p=l+h|0,s=x+z+(p>>>0<l>>>0?1:0)|0}M=f.low=M+p;f.high=y+s+(M>>>0<p>>>0?1:0);N=j.low=N+D;j.high=$+G+(N>>>0<D>>>0?1:0);O=b.low=O+E;b.high=aa+H+(O>>>0<E>>>0?1:0);P=g.low=P+I;g.high=ba+W+(P>>>0<I>>>0?1:0);Q=e.low=Q+q;e.high=ca+t+(Q>>>0<q>>>0?1:0);R=k.low=R+J;k.high=da+U+(R>>>0<J>>>0?1:0);
S=m.low=S+K;m.high=ea+V+(S>>>0<K>>>0?1:0);T=d.low=T+L;d.high=fa+X+(T>>>0<L>>>0?1:0)},_doFinalize:function(){var a=this._data,c=a.words,d=8*this._nDataBytes,f=8*a.sigBytes;c[f>>>5]|=128<<24-f%32;c[(f+128>>>10<<5)+30]=Math.floor(d/4294967296);c[(f+128>>>10<<5)+31]=d;a.sigBytes=4*c.length;this._process();return this._hash.toX32()},clone:function(){var a=d.clone.call(this);a._hash=this._hash.clone();return a},blockSize:32});c.SHA512=d._createHelper(j);c.HmacSHA512=d._createHmacHelper(j)})();
(function(){var a=CryptoJS,c=a.x64,d=c.Word,j=c.WordArray,c=a.algo,f=c.SHA512,c=c.SHA384=f.extend({_doReset:function(){this._hash=new j.init([new d.init(3418070365,3238371032),new d.init(1654270250,914150663),new d.init(2438529370,812702999),new d.init(355462360,4144912697),new d.init(1731405415,4290775857),new d.init(2394180231,1750603025),new d.init(3675008525,1694076839),new d.init(1203062813,3204075428)])},_doFinalize:function(){var a=f._doFinalize.call(this);a.sigBytes-=16;return a}});a.SHA384=
f._createHelper(c);a.HmacSHA384=f._createHmacHelper(c)})();

View File

@@ -0,0 +1,23 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(a,m){var r={},f=r.lib={},g=function(){},l=f.Base={extend:function(a){g.prototype=this;var b=new g;a&&b.mixIn(a);b.hasOwnProperty("init")||(b.init=function(){b.$super.init.apply(this,arguments)});b.init.prototype=b;b.$super=this;return b},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
p=f.WordArray=l.extend({init:function(a,b){a=this.words=a||[];this.sigBytes=b!=m?b:4*a.length},toString:function(a){return(a||q).stringify(this)},concat:function(a){var b=this.words,d=a.words,c=this.sigBytes;a=a.sigBytes;this.clamp();if(c%4)for(var j=0;j<a;j++)b[c+j>>>2]|=(d[j>>>2]>>>24-8*(j%4)&255)<<24-8*((c+j)%4);else if(65535<d.length)for(j=0;j<a;j+=4)b[c+j>>>2]=d[j>>>2];else b.push.apply(b,d);this.sigBytes+=a;return this},clamp:function(){var n=this.words,b=this.sigBytes;n[b>>>2]&=4294967295<<
32-8*(b%4);n.length=a.ceil(b/4)},clone:function(){var a=l.clone.call(this);a.words=this.words.slice(0);return a},random:function(n){for(var b=[],d=0;d<n;d+=4)b.push(4294967296*a.random()|0);return new p.init(b,n)}}),y=r.enc={},q=y.Hex={stringify:function(a){var b=a.words;a=a.sigBytes;for(var d=[],c=0;c<a;c++){var j=b[c>>>2]>>>24-8*(c%4)&255;d.push((j>>>4).toString(16));d.push((j&15).toString(16))}return d.join("")},parse:function(a){for(var b=a.length,d=[],c=0;c<b;c+=2)d[c>>>3]|=parseInt(a.substr(c,
2),16)<<24-4*(c%8);return new p.init(d,b/2)}},G=y.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var d=[],c=0;c<a;c++)d.push(String.fromCharCode(b[c>>>2]>>>24-8*(c%4)&255));return d.join("")},parse:function(a){for(var b=a.length,d=[],c=0;c<b;c++)d[c>>>2]|=(a.charCodeAt(c)&255)<<24-8*(c%4);return new p.init(d,b)}},fa=y.Utf8={stringify:function(a){try{return decodeURIComponent(escape(G.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return G.parse(unescape(encodeURIComponent(a)))}},
h=f.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new p.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=fa.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(n){var b=this._data,d=b.words,c=b.sigBytes,j=this.blockSize,l=c/(4*j),l=n?a.ceil(l):a.max((l|0)-this._minBufferSize,0);n=l*j;c=a.min(4*n,c);if(n){for(var h=0;h<n;h+=j)this._doProcessBlock(d,h);h=d.splice(0,n);b.sigBytes-=c}return new p.init(h,c)},clone:function(){var a=l.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});f.Hasher=h.extend({cfg:l.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){h.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,d){return(new a.init(d)).finalize(b)}},_createHmacHelper:function(a){return function(b,d){return(new ga.HMAC.init(a,
d)).finalize(b)}}});var ga=r.algo={};return r}(Math);
(function(a){var m=CryptoJS,r=m.lib,f=r.Base,g=r.WordArray,m=m.x64={};m.Word=f.extend({init:function(a,p){this.high=a;this.low=p}});m.WordArray=f.extend({init:function(l,p){l=this.words=l||[];this.sigBytes=p!=a?p:8*l.length},toX32:function(){for(var a=this.words,p=a.length,f=[],q=0;q<p;q++){var G=a[q];f.push(G.high);f.push(G.low)}return g.create(f,this.sigBytes)},clone:function(){for(var a=f.clone.call(this),p=a.words=this.words.slice(0),g=p.length,q=0;q<g;q++)p[q]=p[q].clone();return a}})})();
(function(){function a(){return g.create.apply(g,arguments)}for(var m=CryptoJS,r=m.lib.Hasher,f=m.x64,g=f.Word,l=f.WordArray,f=m.algo,p=[a(1116352408,3609767458),a(1899447441,602891725),a(3049323471,3964484399),a(3921009573,2173295548),a(961987163,4081628472),a(1508970993,3053834265),a(2453635748,2937671579),a(2870763221,3664609560),a(3624381080,2734883394),a(310598401,1164996542),a(607225278,1323610764),a(1426881987,3590304994),a(1925078388,4068182383),a(2162078206,991336113),a(2614888103,633803317),
a(3248222580,3479774868),a(3835390401,2666613458),a(4022224774,944711139),a(264347078,2341262773),a(604807628,2007800933),a(770255983,1495990901),a(1249150122,1856431235),a(1555081692,3175218132),a(1996064986,2198950837),a(2554220882,3999719339),a(2821834349,766784016),a(2952996808,2566594879),a(3210313671,3203337956),a(3336571891,1034457026),a(3584528711,2466948901),a(113926993,3758326383),a(338241895,168717936),a(666307205,1188179964),a(773529912,1546045734),a(1294757372,1522805485),a(1396182291,
2643833823),a(1695183700,2343527390),a(1986661051,1014477480),a(2177026350,1206759142),a(2456956037,344077627),a(2730485921,1290863460),a(2820302411,3158454273),a(3259730800,3505952657),a(3345764771,106217008),a(3516065817,3606008344),a(3600352804,1432725776),a(4094571909,1467031594),a(275423344,851169720),a(430227734,3100823752),a(506948616,1363258195),a(659060556,3750685593),a(883997877,3785050280),a(958139571,3318307427),a(1322822218,3812723403),a(1537002063,2003034995),a(1747873779,3602036899),
a(1955562222,1575990012),a(2024104815,1125592928),a(2227730452,2716904306),a(2361852424,442776044),a(2428436474,593698344),a(2756734187,3733110249),a(3204031479,2999351573),a(3329325298,3815920427),a(3391569614,3928383900),a(3515267271,566280711),a(3940187606,3454069534),a(4118630271,4000239992),a(116418474,1914138554),a(174292421,2731055270),a(289380356,3203993006),a(460393269,320620315),a(685471733,587496836),a(852142971,1086792851),a(1017036298,365543100),a(1126000580,2618297676),a(1288033470,
3409855158),a(1501505948,4234509866),a(1607167915,987167468),a(1816402316,1246189591)],y=[],q=0;80>q;q++)y[q]=a();f=f.SHA512=r.extend({_doReset:function(){this._hash=new l.init([new g.init(1779033703,4089235720),new g.init(3144134277,2227873595),new g.init(1013904242,4271175723),new g.init(2773480762,1595750129),new g.init(1359893119,2917565137),new g.init(2600822924,725511199),new g.init(528734635,4215389547),new g.init(1541459225,327033209)])},_doProcessBlock:function(a,f){for(var h=this._hash.words,
g=h[0],n=h[1],b=h[2],d=h[3],c=h[4],j=h[5],l=h[6],h=h[7],q=g.high,m=g.low,r=n.high,N=n.low,Z=b.high,O=b.low,$=d.high,P=d.low,aa=c.high,Q=c.low,ba=j.high,R=j.low,ca=l.high,S=l.low,da=h.high,T=h.low,v=q,s=m,H=r,E=N,I=Z,F=O,W=$,J=P,w=aa,t=Q,U=ba,K=R,V=ca,L=S,X=da,M=T,x=0;80>x;x++){var B=y[x];if(16>x)var u=B.high=a[f+2*x]|0,e=B.low=a[f+2*x+1]|0;else{var u=y[x-15],e=u.high,z=u.low,u=(e>>>1|z<<31)^(e>>>8|z<<24)^e>>>7,z=(z>>>1|e<<31)^(z>>>8|e<<24)^(z>>>7|e<<25),D=y[x-2],e=D.high,k=D.low,D=(e>>>19|k<<13)^
(e<<3|k>>>29)^e>>>6,k=(k>>>19|e<<13)^(k<<3|e>>>29)^(k>>>6|e<<26),e=y[x-7],Y=e.high,C=y[x-16],A=C.high,C=C.low,e=z+e.low,u=u+Y+(e>>>0<z>>>0?1:0),e=e+k,u=u+D+(e>>>0<k>>>0?1:0),e=e+C,u=u+A+(e>>>0<C>>>0?1:0);B.high=u;B.low=e}var Y=w&U^~w&V,C=t&K^~t&L,B=v&H^v&I^H&I,ha=s&E^s&F^E&F,z=(v>>>28|s<<4)^(v<<30|s>>>2)^(v<<25|s>>>7),D=(s>>>28|v<<4)^(s<<30|v>>>2)^(s<<25|v>>>7),k=p[x],ia=k.high,ea=k.low,k=M+((t>>>14|w<<18)^(t>>>18|w<<14)^(t<<23|w>>>9)),A=X+((w>>>14|t<<18)^(w>>>18|t<<14)^(w<<23|t>>>9))+(k>>>0<M>>>
0?1:0),k=k+C,A=A+Y+(k>>>0<C>>>0?1:0),k=k+ea,A=A+ia+(k>>>0<ea>>>0?1:0),k=k+e,A=A+u+(k>>>0<e>>>0?1:0),e=D+ha,B=z+B+(e>>>0<D>>>0?1:0),X=V,M=L,V=U,L=K,U=w,K=t,t=J+k|0,w=W+A+(t>>>0<J>>>0?1:0)|0,W=I,J=F,I=H,F=E,H=v,E=s,s=k+e|0,v=A+B+(s>>>0<k>>>0?1:0)|0}m=g.low=m+s;g.high=q+v+(m>>>0<s>>>0?1:0);N=n.low=N+E;n.high=r+H+(N>>>0<E>>>0?1:0);O=b.low=O+F;b.high=Z+I+(O>>>0<F>>>0?1:0);P=d.low=P+J;d.high=$+W+(P>>>0<J>>>0?1:0);Q=c.low=Q+t;c.high=aa+w+(Q>>>0<t>>>0?1:0);R=j.low=R+K;j.high=ba+U+(R>>>0<K>>>0?1:0);S=l.low=
S+L;l.high=ca+V+(S>>>0<L>>>0?1:0);T=h.low=T+M;h.high=da+X+(T>>>0<M>>>0?1:0)},_doFinalize:function(){var a=this._data,f=a.words,h=8*this._nDataBytes,g=8*a.sigBytes;f[g>>>5]|=128<<24-g%32;f[(g+128>>>10<<5)+30]=Math.floor(h/4294967296);f[(g+128>>>10<<5)+31]=h;a.sigBytes=4*f.length;this._process();return this._hash.toX32()},clone:function(){var a=r.clone.call(this);a._hash=this._hash.clone();return a},blockSize:32});m.SHA512=r._createHelper(f);m.HmacSHA512=r._createHmacHelper(f)})();

View File

@@ -0,0 +1,51 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
CryptoJS=CryptoJS||function(u,l){var d={},n=d.lib={},p=function(){},s=n.Base={extend:function(a){p.prototype=this;var c=new p;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return c},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
q=n.WordArray=s.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=l?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var c=this.words,m=a.words,f=this.sigBytes;a=a.sigBytes;this.clamp();if(f%4)for(var t=0;t<a;t++)c[f+t>>>2]|=(m[t>>>2]>>>24-8*(t%4)&255)<<24-8*((f+t)%4);else if(65535<m.length)for(t=0;t<a;t+=4)c[f+t>>>2]=m[t>>>2];else c.push.apply(c,m);this.sigBytes+=a;return this},clamp:function(){var a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var a=s.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var c=[],m=0;m<a;m+=4)c.push(4294967296*u.random()|0);return new q.init(c,a)}}),w=d.enc={},v=w.Hex={stringify:function(a){var c=a.words;a=a.sigBytes;for(var m=[],f=0;f<a;f++){var t=c[f>>>2]>>>24-8*(f%4)&255;m.push((t>>>4).toString(16));m.push((t&15).toString(16))}return m.join("")},parse:function(a){for(var c=a.length,m=[],f=0;f<c;f+=2)m[f>>>3]|=parseInt(a.substr(f,
2),16)<<24-4*(f%8);return new q.init(m,c/2)}},b=w.Latin1={stringify:function(a){var c=a.words;a=a.sigBytes;for(var m=[],f=0;f<a;f++)m.push(String.fromCharCode(c[f>>>2]>>>24-8*(f%4)&255));return m.join("")},parse:function(a){for(var c=a.length,m=[],f=0;f<c;f++)m[f>>>2]|=(a.charCodeAt(f)&255)<<24-8*(f%4);return new q.init(m,c)}},x=w.Utf8={stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error("Malformed UTF-8 data");}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}},
r=n.BufferedBlockAlgorithm=s.extend({reset:function(){this._data=new q.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var c=this._data,m=c.words,f=c.sigBytes,t=this.blockSize,b=f/(4*t),b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*t;f=u.min(4*a,f);if(a){for(var e=0;e<a;e+=t)this._doProcessBlock(m,e);e=m.splice(0,a);c.sigBytes-=f}return new q.init(e,f)},clone:function(){var a=s.clone.call(this);
a._data=this._data.clone();return a},_minBufferSize:0});n.Hasher=r.extend({cfg:s.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){r.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(c,m){return(new a.init(m)).finalize(c)}},_createHmacHelper:function(a){return function(c,m){return(new e.HMAC.init(a,
m)).finalize(c)}}});var e=d.algo={};return d}(Math);
(function(){var u=CryptoJS,l=u.lib.WordArray;u.enc.Base64={stringify:function(d){var n=d.words,l=d.sigBytes,s=this._map;d.clamp();d=[];for(var q=0;q<l;q+=3)for(var w=(n[q>>>2]>>>24-8*(q%4)&255)<<16|(n[q+1>>>2]>>>24-8*((q+1)%4)&255)<<8|n[q+2>>>2]>>>24-8*((q+2)%4)&255,v=0;4>v&&q+0.75*v<l;v++)d.push(s.charAt(w>>>6*(3-v)&63));if(n=s.charAt(64))for(;d.length%4;)d.push(n);return d.join("")},parse:function(d){var n=d.length,p=this._map,s=p.charAt(64);s&&(s=d.indexOf(s),-1!=s&&(n=s));for(var s=[],q=0,w=0;w<
n;w++)if(w%4){var v=p.indexOf(d.charAt(w-1))<<2*(w%4),b=p.indexOf(d.charAt(w))>>>6-2*(w%4);s[q>>>2]|=(v|b)<<24-8*(q%4);q++}return l.create(s,q)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();
(function(u){function l(b,e,a,c,m,f,t){b=b+(e&a|~e&c)+m+t;return(b<<f|b>>>32-f)+e}function d(b,e,a,c,m,f,t){b=b+(e&c|a&~c)+m+t;return(b<<f|b>>>32-f)+e}function n(b,e,a,c,m,f,t){b=b+(e^a^c)+m+t;return(b<<f|b>>>32-f)+e}function p(b,e,a,c,m,f,t){b=b+(a^(e|~c))+m+t;return(b<<f|b>>>32-f)+e}for(var s=CryptoJS,q=s.lib,w=q.WordArray,v=q.Hasher,q=s.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;q=q.MD5=v.extend({_doReset:function(){this._hash=new w.init([1732584193,4023233417,2562383102,271733878])},
_doProcessBlock:function(r,e){for(var a=0;16>a;a++){var c=e+a,m=r[c];r[c]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360}var a=this._hash.words,c=r[e+0],m=r[e+1],f=r[e+2],t=r[e+3],y=r[e+4],q=r[e+5],s=r[e+6],w=r[e+7],v=r[e+8],u=r[e+9],x=r[e+10],z=r[e+11],A=r[e+12],B=r[e+13],C=r[e+14],D=r[e+15],g=a[0],h=a[1],j=a[2],k=a[3],g=l(g,h,j,k,c,7,b[0]),k=l(k,g,h,j,m,12,b[1]),j=l(j,k,g,h,f,17,b[2]),h=l(h,j,k,g,t,22,b[3]),g=l(g,h,j,k,y,7,b[4]),k=l(k,g,h,j,q,12,b[5]),j=l(j,k,g,h,s,17,b[6]),h=l(h,j,k,g,w,22,b[7]),
g=l(g,h,j,k,v,7,b[8]),k=l(k,g,h,j,u,12,b[9]),j=l(j,k,g,h,x,17,b[10]),h=l(h,j,k,g,z,22,b[11]),g=l(g,h,j,k,A,7,b[12]),k=l(k,g,h,j,B,12,b[13]),j=l(j,k,g,h,C,17,b[14]),h=l(h,j,k,g,D,22,b[15]),g=d(g,h,j,k,m,5,b[16]),k=d(k,g,h,j,s,9,b[17]),j=d(j,k,g,h,z,14,b[18]),h=d(h,j,k,g,c,20,b[19]),g=d(g,h,j,k,q,5,b[20]),k=d(k,g,h,j,x,9,b[21]),j=d(j,k,g,h,D,14,b[22]),h=d(h,j,k,g,y,20,b[23]),g=d(g,h,j,k,u,5,b[24]),k=d(k,g,h,j,C,9,b[25]),j=d(j,k,g,h,t,14,b[26]),h=d(h,j,k,g,v,20,b[27]),g=d(g,h,j,k,B,5,b[28]),k=d(k,g,
h,j,f,9,b[29]),j=d(j,k,g,h,w,14,b[30]),h=d(h,j,k,g,A,20,b[31]),g=n(g,h,j,k,q,4,b[32]),k=n(k,g,h,j,v,11,b[33]),j=n(j,k,g,h,z,16,b[34]),h=n(h,j,k,g,C,23,b[35]),g=n(g,h,j,k,m,4,b[36]),k=n(k,g,h,j,y,11,b[37]),j=n(j,k,g,h,w,16,b[38]),h=n(h,j,k,g,x,23,b[39]),g=n(g,h,j,k,B,4,b[40]),k=n(k,g,h,j,c,11,b[41]),j=n(j,k,g,h,t,16,b[42]),h=n(h,j,k,g,s,23,b[43]),g=n(g,h,j,k,u,4,b[44]),k=n(k,g,h,j,A,11,b[45]),j=n(j,k,g,h,D,16,b[46]),h=n(h,j,k,g,f,23,b[47]),g=p(g,h,j,k,c,6,b[48]),k=p(k,g,h,j,w,10,b[49]),j=p(j,k,g,h,
C,15,b[50]),h=p(h,j,k,g,q,21,b[51]),g=p(g,h,j,k,A,6,b[52]),k=p(k,g,h,j,t,10,b[53]),j=p(j,k,g,h,x,15,b[54]),h=p(h,j,k,g,m,21,b[55]),g=p(g,h,j,k,v,6,b[56]),k=p(k,g,h,j,D,10,b[57]),j=p(j,k,g,h,s,15,b[58]),h=p(h,j,k,g,B,21,b[59]),g=p(g,h,j,k,y,6,b[60]),k=p(k,g,h,j,z,10,b[61]),j=p(j,k,g,h,f,15,b[62]),h=p(h,j,k,g,u,21,b[63]);a[0]=a[0]+g|0;a[1]=a[1]+h|0;a[2]=a[2]+j|0;a[3]=a[3]+k|0},_doFinalize:function(){var b=this._data,e=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;e[c>>>5]|=128<<24-c%32;var m=u.floor(a/
4294967296);e[(c+64>>>9<<4)+15]=(m<<8|m>>>24)&16711935|(m<<24|m>>>8)&4278255360;e[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(e.length+1);this._process();b=this._hash;e=b.words;for(a=0;4>a;a++)c=e[a],e[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return b}});s.MD5=v._createHelper(q);s.HmacMD5=v._createHmacHelper(q)})(Math);
(function(){var u=CryptoJS,l=u.lib,d=l.Base,n=l.WordArray,l=u.algo,p=l.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:l.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,l){for(var p=this.cfg,v=p.hasher.create(),b=n.create(),u=b.words,r=p.keySize,p=p.iterations;u.length<r;){e&&v.update(e);var e=v.update(d).finalize(l);v.reset();for(var a=1;a<p;a++)e=v.finalize(e),v.reset();b.concat(e)}b.sigBytes=4*r;return b}});u.EvpKDF=function(d,l,n){return p.create(n).compute(d,
l)}})();
CryptoJS.lib.Cipher||function(u){var l=CryptoJS,d=l.lib,n=d.Base,p=d.WordArray,s=d.BufferedBlockAlgorithm,q=l.enc.Base64,w=l.algo.EvpKDF,v=d.Cipher=s.extend({cfg:n.extend(),createEncryptor:function(m,a){return this.create(this._ENC_XFORM_MODE,m,a)},createDecryptor:function(m,a){return this.create(this._DEC_XFORM_MODE,m,a)},init:function(m,a,b){this.cfg=this.cfg.extend(b);this._xformMode=m;this._key=a;this.reset()},reset:function(){s.reset.call(this);this._doReset()},process:function(a){this._append(a);return this._process()},
finalize:function(a){a&&this._append(a);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(m){return{encrypt:function(f,b,e){return("string"==typeof b?c:a).encrypt(m,f,b,e)},decrypt:function(f,b,e){return("string"==typeof b?c:a).decrypt(m,f,b,e)}}}});d.StreamCipher=v.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var b=l.mode={},x=function(a,f,b){var c=this._iv;c?this._iv=u:c=this._prevBlock;for(var e=0;e<b;e++)a[f+e]^=
c[e]},r=(d.BlockCipherMode=n.extend({createEncryptor:function(a,f){return this.Encryptor.create(a,f)},createDecryptor:function(a,f){return this.Decryptor.create(a,f)},init:function(a,f){this._cipher=a;this._iv=f}})).extend();r.Encryptor=r.extend({processBlock:function(a,f){var b=this._cipher,c=b.blockSize;x.call(this,a,f,c);b.encryptBlock(a,f);this._prevBlock=a.slice(f,f+c)}});r.Decryptor=r.extend({processBlock:function(a,b){var c=this._cipher,e=c.blockSize,d=a.slice(b,b+e);c.decryptBlock(a,b);x.call(this,
a,b,e);this._prevBlock=d}});b=b.CBC=r;r=(l.pad={}).Pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigBytes%c,e=c<<24|c<<16|c<<8|c,d=[],l=0;l<c;l+=4)d.push(e);c=p.create(d,c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:r}),reset:function(){v.reset.call(this);var a=this.cfg,c=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var b=a.createEncryptor;else b=a.createDecryptor,this._minBufferSize=1;this._mode=b.call(a,
this,c&&c.words)},_doProcessBlock:function(a,c){this._mode.processBlock(a,c)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var c=this._process(!0)}else c=this._process(!0),a.unpad(c);return c},blockSize:4});var e=d.CipherParams=n.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(l.format={}).OpenSSL={stringify:function(a){var c=a.ciphertext;a=a.salt;return(a?p.create([1398893684,
1701076831]).concat(a).concat(c):c).toString(q)},parse:function(a){a=q.parse(a);var c=a.words;if(1398893684==c[0]&&1701076831==c[1]){var b=p.create(c.slice(2,4));c.splice(0,4);a.sigBytes-=16}return e.create({ciphertext:a,salt:b})}},a=d.SerializableCipher=n.extend({cfg:n.extend({format:b}),encrypt:function(a,c,b,d){d=this.cfg.extend(d);var l=a.createEncryptor(b,d);c=l.finalize(c);l=l.cfg;return e.create({ciphertext:c,key:b,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})},
decrypt:function(a,c,b,e){e=this.cfg.extend(e);c=this._parse(c,e.format);return a.createDecryptor(b,e).finalize(c.ciphertext)},_parse:function(a,c){return"string"==typeof a?c.parse(a,this):a}}),l=(l.kdf={}).OpenSSL={execute:function(a,c,b,d){d||(d=p.random(8));a=w.create({keySize:c+b}).compute(a,d);b=p.create(a.words.slice(c),4*b);a.sigBytes=4*c;return e.create({key:a,iv:b,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:l}),encrypt:function(c,b,e,d){d=this.cfg.extend(d);e=d.kdf.execute(e,
c.keySize,c.ivSize);d.iv=e.iv;c=a.encrypt.call(this,c,b,e.key,d);c.mixIn(e);return c},decrypt:function(c,b,e,d){d=this.cfg.extend(d);b=this._parse(b,d.format);e=d.kdf.execute(e,c.keySize,c.ivSize,b.salt);d.iv=e.iv;return a.decrypt.call(this,c,b,e.key,d)}})}();
(function(){function u(b,a){var c=(this._lBlock>>>b^this._rBlock)&a;this._rBlock^=c;this._lBlock^=c<<b}function l(b,a){var c=(this._rBlock>>>b^this._lBlock)&a;this._lBlock^=c;this._rBlock^=c<<b}var d=CryptoJS,n=d.lib,p=n.WordArray,n=n.BlockCipher,s=d.algo,q=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],w=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,
55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],v=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],b=[{"0":8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,
2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,
1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{"0":1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,
75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,
276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{"0":260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,
14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,
17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{"0":2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,
98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,
1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{"0":128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,
10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,
83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{"0":268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,
2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{"0":1048576,
16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,
496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{"0":134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,
2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,
2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],x=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],r=s.DES=n.extend({_doReset:function(){for(var b=this._key.words,a=[],c=0;56>c;c++){var d=q[c]-1;a[c]=b[d>>>5]>>>31-d%32&1}b=this._subKeys=[];for(d=0;16>d;d++){for(var f=b[d]=[],l=v[d],c=0;24>c;c++)f[c/6|0]|=a[(w[c]-1+l)%28]<<31-c%6,f[4+(c/6|0)]|=a[28+(w[c+24]-1+l)%28]<<31-c%6;f[0]=f[0]<<1|f[0]>>>31;for(c=1;7>c;c++)f[c]>>>=
4*(c-1)+3;f[7]=f[7]<<5|f[7]>>>27}a=this._invSubKeys=[];for(c=0;16>c;c++)a[c]=b[15-c]},encryptBlock:function(b,a){this._doCryptBlock(b,a,this._subKeys)},decryptBlock:function(b,a){this._doCryptBlock(b,a,this._invSubKeys)},_doCryptBlock:function(e,a,c){this._lBlock=e[a];this._rBlock=e[a+1];u.call(this,4,252645135);u.call(this,16,65535);l.call(this,2,858993459);l.call(this,8,16711935);u.call(this,1,1431655765);for(var d=0;16>d;d++){for(var f=c[d],n=this._lBlock,p=this._rBlock,q=0,r=0;8>r;r++)q|=b[r][((p^
f[r])&x[r])>>>0];this._lBlock=p;this._rBlock=n^q}c=this._lBlock;this._lBlock=this._rBlock;this._rBlock=c;u.call(this,1,1431655765);l.call(this,8,16711935);l.call(this,2,858993459);u.call(this,16,65535);u.call(this,4,252645135);e[a]=this._lBlock;e[a+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});d.DES=n._createHelper(r);s=s.TripleDES=n.extend({_doReset:function(){var b=this._key.words;this._des1=r.createEncryptor(p.create(b.slice(0,2)));this._des2=r.createEncryptor(p.create(b.slice(2,4)));this._des3=
r.createEncryptor(p.create(b.slice(4,6)))},encryptBlock:function(b,a){this._des1.encryptBlock(b,a);this._des2.decryptBlock(b,a);this._des3.encryptBlock(b,a)},decryptBlock:function(b,a){this._des3.decryptBlock(b,a);this._des2.encryptBlock(b,a);this._des1.decryptBlock(b,a)},keySize:6,ivSize:2,blockSize:2});d.TripleDES=n._createHelper(s)})();

View File

@@ -1,58 +1,119 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
* Copyright 2011, Dominik Schmidt <domme@tomahawk-player.org>
* Copyright 2011-2012, Leo Franchi <lfranchi@kde.org>
* Copyright 2011, Thierry Goeckel
* Copyright 2013, Teo Mrnjavac <teo@kde.org>
* Copyright 2013, Uwe L. Korn <uwelk@xhochy.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*/
// if run in phantomjs add fake Tomahawk environment
if(window.Tomahawk === undefined)
{
// alert("PHANTOMJS ENVIRONMENT");
if ((typeof Tomahawk === "undefined") || (Tomahawk === null)) {
var Tomahawk = {
fakeEnv: function()
{
fakeEnv: function () {
return true;
},
resolverData: function()
{
resolverData: function () {
return {
scriptPath: function()
{
scriptPath: function () {
return "/home/tomahawk/resolver.js";
}
};
},
log: function( message )
{
console.log( message );
log: function (message) {
console.log(message);
}
};
}
Tomahawk.apiVersion = "0.2.1";
/**
* Compares versions strings
* (version1 < version2) == -1
* (version1 = version2) == 0
* (version1 > version2) == 1
*/
Tomahawk.versionCompare = function (version1, version2) {
var v1 = version1.split('.').map(function (item) { return parseInt(item); });
var v2 = version2.split('.').map(function (item) { return parseInt(item); })
var length = Math.max(v1.length, v2.length);
var i = 0;
for (; i < length; i++) {
if (typeof v1[i] == "undefined" || v1[i] === null) {
if (typeof v2[i] == "undefined" || v2[i] === null) {
// v1 == v2
return 0;
} else if (v2[i] === 0) {
continue;
} else {
// v1 < v2
return -1;
}
} else if (typeof v2[i] == "undefined" || v2[i] === null) {
if ( v1[i] === 0 ) {
continue;
} else {
// v1 > v2
return 1;
}
} else if (v2[i] > v1[i]) {
// v1 < v2
return -1;
} else if (v2[i] < v2[i]) {
// v1 > v2
return 1;
}
}
// v1 == v2
return 0;
};
/**
* Check if this is at least specified tomahawk-api-version.
*/
Tomahawk.atLeastVersion = function (version) {
return (Tomahawk.versionCompare(version, Tomahawk.apiVersion) >= 0)
};
Tomahawk.resolver = {
scriptPath: Tomahawk.resolverData().scriptPath
};
Tomahawk.timestamp = function() {
return Math.round( new Date()/1000 );
Tomahawk.timestamp = function () {
return Math.round(new Date() / 1000);
};
Tomahawk.dumpResult = function( result ) {
var results = result.results;
Tomahawk.dumpResult = function (result) {
var results = result.results,
i = 0;
Tomahawk.log("Dumping " + results.length + " results for query " + result.qid + "...");
for(var i=0; i<results.length;i++)
{
var result1 = results[i];
Tomahawk.log( result1.artist + " - " + result1.track + " | " + result1.url );
for (i = 0; i < results.length; i++) {
Tomahawk.log(results[i].artist + " - " + results[i].track + " | " + results[i].url);
}
Tomahawk.log("Done.");
};
// javascript part of Tomahawk-Object API
Tomahawk.extend = function(object, members) {
var F = function() {};
Tomahawk.extend = function (object, members) {
var F = function () {};
F.prototype = object;
var newObject = new F;
var newObject = new F();
for(var key in members)
{
for (var key in members) {
newObject[key] = members[key];
}
@@ -60,52 +121,70 @@ Tomahawk.extend = function(object, members) {
};
// Resolver BaseObject, inherit it to implement your own resolver
var TomahawkResolverCapability = {
NullCapability: 0,
Browsable: 1,
PlaylistSync: 2,
AccountFactory: 4,
UrlLookup: 8
};
var TomahawkUrlType = {
Any: 0,
Playlist: 1,
Track: 2,
Album: 4,
Artist: 8
};
/**
* Resolver BaseObject, inherit it to implement your own resolver.
*/
var TomahawkResolver = {
init: function()
{
init: function() {
},
scriptPath: function()
{
scriptPath: function () {
return Tomahawk.resolverData().scriptPath;
},
getConfigUi: function()
{
getConfigUi: function () {
return {};
},
getUserConfig: function()
{
var configJson = window.localStorage[ this.scriptPath() ];
if( configJson === undefined )
{
configJson = "{}";
}
var config = JSON.parse( configJson );
return config;
getUserConfig: function () {
return JSON.parse(window.localStorage[this.scriptPath()] || "{}");
},
saveUserConfig: function()
{
var config = Tomahawk.resolverData().config;
var configJson = JSON.stringify( config );
saveUserConfig: function () {
var configJson = JSON.stringify(Tomahawk.resolverData().config);
window.localStorage[ this.scriptPath() ] = configJson;
this.newConfigSaved();
},
newConfigSaved: function()
{
newConfigSaved: function () {
},
resolve: function( qid, artist, album, title )
{
resolve: function (qid, artist, album, title) {
return {
qid: qid
};
},
search: function( qid, searchString )
{
search: function (qid, searchString) {
return this.resolve( qid, "", "", searchString );
},
artists: function (qid) {
return {
qid: qid
};
},
albums: function (qid, artist) {
return {
qid: qid
};
},
tracks: function (qid, artist, album) {
return {
qid: qid
};
},
collection: function () {
return {};
}
};
@@ -157,189 +236,83 @@ var TomahawkResolver = {
// help functions
Tomahawk.valueForSubNode = function(node, tag)
{
if(node === undefined)
{
Tomahawk.valueForSubNode = function (node, tag) {
if (node === undefined) {
throw new Error("Tomahawk.valueForSubnode: node is undefined!");
}
var element = node.getElementsByTagName(tag)[0];
if( element === undefined )
{
if (element === undefined) {
return undefined;
}
return element.textContent;
};
/**
* Do a synchronous HTTP(S) request. For further options see
* Tomahawk.asyncRequest
*/
Tomahawk.syncRequest = function (url, extraHeaders, options) {
// unpack options
var opt = options || {};
var method = opt.method || 'GET';
Tomahawk.syncRequest = function(url)
{
var xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.open('GET', url, false);
xmlHttpRequest.send(null);
if (xmlHttpRequest.status == 200){
return xmlHttpRequest.responseText;
}
};
Tomahawk.asyncRequest = function(url, callback, extraHeaders)
{
var xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.open('GET', url, true);
xmlHttpRequest.open(method, url, false, opt.username, opt.password);
if (extraHeaders) {
for(var headerName in extraHeaders) {
for (var headerName in extraHeaders) {
xmlHttpRequest.setRequestHeader(headerName, extraHeaders[headerName]);
}
}
xmlHttpRequest.onreadystatechange = function() {
if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
callback.call(window, xmlHttpRequest);
} else if (xmlHttpRequest.readyState === 4) {
Tomahawk.log("Failed to do GET request: to: " + url);
Tomahawk.log("Status Code was: " + xmlHttpRequest.status);
xmlHttpRequest.send(null);
if (xmlHttpRequest.status == 200) {
return xmlHttpRequest.responseText;
} else {
Tomahawk.log("Failed to do GET request: to: " + url);
Tomahawk.log("Status Code was: " + xmlHttpRequest.status);
if (opt.hasOwnProperty('errorHandler')) {
opt.errorHandler.call(window, xmlHttpRequest);
}
}
xmlHttpRequest.send(null);
};
/**
*
* Secure Hash Algorithm (SHA256)
* http://www.webtoolkit.info/
*
* Original code by Angel Marin, Paul Johnston.
*
**/
* Possible options:
* - method: The HTTP request method (default: GET)
* - username: The username for HTTP Basic Auth
* - password: The password for HTTP Basic Auth
* - errorHandler: callback called if the request was not completed
* - data: body data included in POST requests
*/
Tomahawk.asyncRequest = function (url, callback, extraHeaders, options) {
// unpack options
var opt = options || {};
var method = opt.method || 'GET';
Tomahawk.sha256=function(s){
var chrsz = 8;
var hexcase = 0;
function safe_add (x, y) {
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
function S (X, n) { return ( X >>> n ) | (X << (32 - n)); }
function R (X, n) { return ( X >>> n ); }
function Ch(x, y, z) { return ((x & y) ^ ((~x) & z)); }
function Maj(x, y, z) { return ((x & y) ^ (x & z) ^ (y & z)); }
function Sigma0256(x) { return (S(x, 2) ^ S(x, 13) ^ S(x, 22)); }
function Sigma1256(x) { return (S(x, 6) ^ S(x, 11) ^ S(x, 25)); }
function Gamma0256(x) { return (S(x, 7) ^ S(x, 18) ^ R(x, 3)); }
function Gamma1256(x) { return (S(x, 17) ^ S(x, 19) ^ R(x, 10)); }
function core_sha256 (m, l) {
var K = new Array(0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0xFC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x6CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2);
var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19);
var W = new Array(64);
var a, b, c, d, e, f, g, h, i, j;
var T1, T2;
m[l >> 5] |= 0x80 << (24 - l % 32);
m[((l + 64 >> 9) << 4) + 15] = l;
for ( i = 0; i<m.length; i+=16 ) {
a = HASH[0];
b = HASH[1];
c = HASH[2];
d = HASH[3];
e = HASH[4];
f = HASH[5];
g = HASH[6];
h = HASH[7];
for ( j = 0; j<64; j++) {
if (j < 16)
{
W[j] = m[j + i];
}
else
{
W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]);
}
T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]);
T2 = safe_add(Sigma0256(a), Maj(a, b, c));
h = g;
g = f;
f = e;
e = safe_add(d, T1);
d = c;
c = b;
b = a;
a = safe_add(T1, T2);
}
HASH[0] = safe_add(a, HASH[0]);
HASH[1] = safe_add(b, HASH[1]);
HASH[2] = safe_add(c, HASH[2]);
HASH[3] = safe_add(d, HASH[3]);
HASH[4] = safe_add(e, HASH[4]);
HASH[5] = safe_add(f, HASH[5]);
HASH[6] = safe_add(g, HASH[6]);
HASH[7] = safe_add(h, HASH[7]);
var xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.open(method, url, true, opt.username, opt.password);
if (extraHeaders) {
for (var headerName in extraHeaders) {
xmlHttpRequest.setRequestHeader(headerName, extraHeaders[headerName]);
}
return HASH;
}
function str2binb (str) {
var bin = Array();
var mask = (1 << chrsz) - 1;
for(var i = 0; i < str.length * chrsz; i += chrsz) {
bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i%32);
}
return bin;
}
function Utf8Encode(string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
xmlHttpRequest.onreadystatechange = function () {
if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
callback.call(window, xmlHttpRequest);
} else if (xmlHttpRequest.readyState === 4) {
Tomahawk.log("Failed to do " + method + " request: to: " + url);
Tomahawk.log("Status Code was: " + xmlHttpRequest.status);
if (opt.hasOwnProperty('errorHandler')) {
opt.errorHandler.call(window, xmlHttpRequest);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
function binb2hex (binarray) {
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for(var i = 0; i < binarray.length * 4; i++) {
str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +
hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF);
}
return str;
}
s = Utf8Encode(s);
return binb2hex(core_sha256(str2binb(s), s.length * chrsz));
};
xmlHttpRequest.send(opt.data || null);
};
Tomahawk.sha256 = Tomahawk.sha256 || CryptoJS.SHA256;
// some aliases
Tomahawk.setTimeout = window.setTimeout;
Tomahawk.setInterval = window.setInterval;
Tomahawk.setTimeout = Tomahawk.setTimeout || window.setTimeout;
Tomahawk.setInterval = Tomahawk.setInterval || window.setInterval;

View File

@@ -0,0 +1,6 @@
-- Script to migate from db version 29 to 30.
-- Add the following index to speed up all Operations that deal with a specific time period of plays
CREATE INDEX playback_log_playtime ON playback_log(playtime);
UPDATE settings SET v = '30' WHERE k == 'schema_version';

View File

@@ -0,0 +1,9 @@
-- Script to migate from db version 30 to 31.
-- Better indices to join playlist_item with other tables
CREATE INDEX playlist_item_trackname ON playlist_item(trackname);
CREATE INDEX playlist_item_artistname ON playlist_item(artistname);
CREATE INDEX artist_name ON artist(name);
CREATE INDEX track_name ON track(name);
UPDATE settings SET v = '31' WHERE k == 'schema_version';

View File

@@ -1,64 +1,85 @@
<!DOCTYPE HTML>
<html>
<!DOCTYPE html>
<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!-->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Allow Tomahawk Access</title>
<style>
body {
margin: 0;
padding: 0;
font: normal 12px 'Verdana', sans-serif;
}
a img,
img {
border: 0;
}
a {
color: #598d0c;
}
a#head {
display: block;
width: 100%;
height: 68px;
background: #cbdab1;
}
div#content {
margin: 30px;
text-align: center;
}
div#content p {
margin: 0 0 25px 0;
}
input.button {
border: 1px solid #999;
padding: 4px 10px;
border-color: #999 #555 #555 #999;
background: #ddd;
}
input.confirm {
background: #81bd0e;
color: #fff;
border-color: #6ba318 #426c0b #426c0b #6ba318;
}
</style>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="" name="description">
<meta content="Tomahawk" name="author">
<link href="/staticdata/favicon.png" rel="shortcut icon">
<title>Tomahawk</title>
<!-- CSS -->
<link href="/staticdata/css/bootstrap.css" rel="stylesheet">
<link href="/staticdata/css/style.css" rel="stylesheet"><!-- Theme Style -->
<link href="/staticdata/css/elements.css" rel="stylesheet"><!-- Theme elements style -->
<link href="/staticdata/css/animate.css" rel="stylesheet"><!-- CSS Animations -->
<!--[if lt IE 9]>
<script src="/staticdata/js/html5shim.js"></script>
<![endif]-->
<noscript><link rel="stylesheet" href="/staticdata/css/no-js.css"></noscript>
<!-- Google Web Fonts -->
<link href='http://fonts.googleapis.com/css?family=Roboto:400,500,700,900' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,900' rel='stylesheet' type='text/css'>
</head>
<body>
<a href="http://www.tomahawk-player.org" title="Tomahawk - Powered by Playdar" id="head">
<img alt="Tomahawk - Powered by Playdar" src="/staticdata/tomahawk_auth_logo.png" width="200" height="30">
</a>
<div id="content">
<form method="post" action="/auth_2/" id="auth">
<p>Allow access to Tomahawk from <a href="<%WEBSITE%>"><%NAME%></a></p>
<p class="buttons">
<input type="button" value="Deny" class="button" onclick="window.close();" />
<input type="submit" value="Allow" class="confirm button" />
</p>
<input type="hidden" name="formtoken" value="<%FORMTOKEN%>" />
<input type="hidden" name="receiverurl" value="<%URL%>" />
<input type="hidden" name="website" value="<%WEBSITE%>" />
<input type="hidden" name="name" value="<%NAME%>" />
</form>
<!--NAVBAR -->
<header id="header">
<div class="navbar navbar-fixed-top" id="nav">
<div class="ribbon-top"></div>
<div class="container">
<div class="navbar-header">
<button class="navbar-toggle" data-target=".navbar-collapse" data-toggle="collapse" type="button">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="http://tomahawk-player.org/index.html">
<img alt="" src="/staticdata/tomahawk_auth_logo.png" height="50">
</a>
</div>
</div>
</div>
</header>
<!--/.NAVBAR:end -->
<!--Content WRAPPER-->
<div id="wrapper-content">
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4">
<br><br>
<center>
<br><br>
<div id="content">
<form method="post" action="/auth_2/" id="auth">
<p>Grant access to Tomahawk from <a href="<%WEBSITE%>"><%NAME%></a>?</p>
<br><br>
<p class="buttons">
<input type="button" value="Deny" class="btn btn-red" onclick="window.close();" />
<input type="submit" value="Allow" class="btn btn-green" />
</p>
<input type="hidden" name="formtoken" value="<%FORMTOKEN%>" />
<input type="hidden" name="receiverurl" value="<%URL%>" />
<input type="hidden" name="website" value="<%WEBSITE%>" />
<input type="hidden" name="name" value="<%NAME%>" />
</form>
</div>
</center>
<br><br>
</div>
<div class="col-md-4"></div>
</div>
</div>
<!-- #Wraper-content:ends -->
</body>
</html>

View File

@@ -33,12 +33,13 @@
</head>
<body>
<a href="http://www.tomahawk-player.org" title="Tomahawk - Powered by Playdar" id="head">
<img alt="Tomahawk - Powered by Playdar" src="/staticdata/tomahawk_auth_logo.png" width="200" height="30">
<img alt="Tomahawk - Powered by Playdar" src="/staticdata/tomahawk_auth_logo.png" height="30">
</a>
<div id="content">
<p>You have allowed access to Tomahawk from <a href="<%WEBSITE%>"><%NAME%></a></p>
<p>Copy and paste this authentication <strong>token</strong> into the status bar then close this window.</p>
<p>Token: <input type="text" value="<%AUTHCODE%>" size="35" onclick="this.focus(); this.select();" />
<p>Token: <input type="text" value="<%AUTHCODE%>" size="35" onclick="this.focus(); this.select();" /></p>
</div>
</body>
</html>

3263
data/www/css/animate.css vendored Normal file

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More