cocoanetics / autoingest Goto Github PK
View Code? Open in Web Editor NEWAutomatic Sales Report Downloader for Mac
License: BSD 2-Clause "Simplified" License
Automatic Sales Report Downloader for Mac
License: BSD 2-Clause "Simplified" License
The default vendor ID is 8XXXXXXX. If this is not replaced with a 8-digit number that begins with an 8, then "sync now" should be disabled.
Currently you can push it and then you see "Stop Sync", but that never does anything.
Add download options for Newsstand and Opt-In.
I haven't found anybody with Opt-In reports yet, but it is implemented in DTITCReportDownloader as in outlined in Apple's PDF Guide
The total options to download should be:
Newsstand does not seem to have longer periods than Weekly at present. I assume that the same is true for Opt-In. Only Newsstand has Detailed.
I'm thinking that a matrix would be nice. There is no combination where Summary and Detailed can occur at the same time so imagine a grid, where the Os are checkboxes
D W M Y
Sales O O O O
Newsstand O O - -
Opt-In - O - -
Looks like Opt-In is only available weekly.
This is to clarify usage of third party libraries. Please don't check in code into develop that you don't have the copyright for and are willing and able to assign it to Cocoanetics.
@JanX2 put in NoodleKit only for use of a helper method for NSTimer. And he did so right into develop.
I don't want this. Never add any third party code directly into develop. If you must put it in a branch for the other team members to review.
If it is functionality that would take more than 3 lines of code then make a project-local category or tell me to add it to DTFoundation.
Please help keep the project slim and understandable by others.
The original suggestion is to make this hierarchy: Vendor_ID/ReportType/ReportSubType/ReportDateType
I think a simpler and "always on" approach is better. Simpler because we could use only two levels of folders AppleID/VendorID
because the report types, subtypes and date is already in the file name. In this case even only the VendorID
would work.
Basically we've two options:
What do you thing?
If both unzipping and organizing post processing options are chosen, then some files might appear zipped in the organized structure.
The reason is that the files get written to the report folder before they get unzipped in place.
Is it possible to support OS X 10.7?
If yes, please see this issue as a feature request.
Autolayout, used in the XIBs, should not be a problem, right?
For some Macs it takes a while for the network to become available after waking up. Currently this causes the sync to fail.
Investigate if Reachability is able to catch that (DNS resolution being late) or possibly if there is a later state change that can tell us if the IP address is now reachable.
Alternatively we could simply have a slight delay for a few seconds to wait with auto-sync after waking up.
sparkle in its current binary distribution is not able to check developer signed apps. this is a very handy feature when you compare the affords to secure updates.
to enable it one has to use the latest version of its master branch. (see https://github.com/andymatuschak/Sparkle/wiki)
there are two options: add it as a submodule and make it a part of the build process or include it as a precompiled framework. both ways have there advantages. which one should we go?
probably when there's a space in the path. Will investigate.
Edit: that was not it. Can't repro it now, even after throwing away the prefs.
2013-05-10 11:06:08.256 AutoIngest[40868:303] Report Download Folder changed to /Data/- iPhone programming/reports
2013-05-10 11:06:32.814 AutoIngest[40868:c767] An uncaught exception was raised
2013-05-10 11:06:32.815 AutoIngest[40868:c767] *** -[NSFileManager contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:]: URL is nil
2013-05-10 11:06:32.815 AutoIngest[40868:c767] (
0 CoreFoundation 0x00007fff8cde0b06 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff86a0c3f0 objc_exception_throw + 43
2 CoreFoundation 0x00007fff8cde08dc +[NSException raise:format:] + 204
3 Foundation 0x00007fff8897d921 -[NSFileManager contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:] + 111
4 AutoIngest 0x0000000100010b83 -[ReportOrganizer _organizeFolder:] + 371
5 AutoIngest 0x0000000100010930 __37-[ReportOrganizer organizeAllReports]_block_invoke + 96
6 Foundation 0x00007fff8896d12f -[NSBlockOperation main] + 124
7 Foundation 0x00007fff88943036 -[__NSOperationInternal start] + 684
8 Foundation 0x00007fff8894a861 __block_global_6 + 129
9 libdispatch.dylib 0x00007fff8412bf01 _dispatch_call_block_and_release + 15
10 libdispatch.dylib 0x00007fff841280b6 _dispatch_client_callout + 8
11 libdispatch.dylib 0x00007fff841291fa _dispatch_worker_thread2 + 304
12 libsystem_c.dylib 0x00007fff83dc2d0b _pthread_wqthread + 404
13 libsystem_c.dylib 0x00007fff83dad1d1 start_wqthread + 13
)
2013-05-10 11:06:32.816 AutoIngest[40868:c767] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSFileManager contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:]: URL is nil'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff8cde0b06 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff86a0c3f0 objc_exception_throw + 43
2 CoreFoundation 0x00007fff8cde08dc +[NSException raise:format:] + 204
3 Foundation 0x00007fff8897d921 -[NSFileManager contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:] + 111
4 AutoIngest 0x0000000100010b83 -[ReportOrganizer _organizeFolder:] + 371
5 AutoIngest 0x0000000100010930 __37-[ReportOrganizer organizeAllReports]_block_invoke + 96
6 Foundation 0x00007fff8896d12f -[NSBlockOperation main] + 124
7 Foundation 0x00007fff88943036 -[__NSOperationInternal start] + 684
8 Foundation 0x00007fff8894a861 __block_global_6 + 129
9 libdispatch.dylib 0x00007fff8412bf01 _dispatch_call_block_and_release + 15
10 libdispatch.dylib 0x00007fff841280b6 _dispatch_client_callout + 8
11 libdispatch.dylib 0x00007fff841291fa _dispatch_worker_thread2 + 304
12 libsystem_c.dylib 0x00007fff83dc2d0b _pthread_wqthread + 404
13 libsystem_c.dylib 0x00007fff83dad1d1 start_wqthread + 13
)
libc++abi.dylib: terminate called throwing an exception
I just had a crash in “-syncDidFinish:”. It occurred when manually syncing right after waking from sleep. I was dropped right into Xcode/lldb. The previous message in the log was “NO Internet Connection”.
I can’t seem to be able reproduce it at this moment, so I am just logging it here. Apparently, the sync menu item is usually gray out when there is no net. I could be a timing issue…
I haven't tested what happens to the organizer (or the app) when the Download Folder doesn't exists. What should we do?
The organizer can silently ignore this and disable itself until a existing folder is set. What about the downloader does it already handle it?
I found with the current version that the menu option does not get set back to Start when the synching is done.
frankdilo: "I downloaded all my reports with the “uncompress reports” option turned on and they were uncompressed, but the .gz part of the filename at the and wasn’t removed."
The status bar icon looks to me like it is positioned a little bit too low. Will check the frame of the image drawing versus the status bar item view.
We need an app icon to replace the current Xcode default one.
I thought maybe a threedimensional Golden Apple that has a bite. The metaphor being that having an app on the app store should be like having a tree that produces golden apples. And the bite in combination with the Apple of course being a reference to Apple itself.
fix this issue: Cocoanetics/DTITCReportDownloader#4
I would like to be able to enter multiple vendor IDs in the vendor ID field, separated by colon. This should be saved as an array in the user defaults. On synching this would then instantiate a sync as configured for each vendor ID.
I'm thinking that this would be a great use for a token field. You know where upon completing a valid 8-digit vendor id it would turn into one "blue pill", like e-mail addresses in mail.app.
Who's up for that?
Since the latest changes in #20 now the menu does no longer show.
Do you have any plans to migrate this over to Apples Reporter tool? As Apple will be deprecating Autoingestion in November.
/AutoIngest-develop/AutoIngest/Source/DTITCReportManager.m:13:9: 'DTReachability.h' file not found
Any idea where I get this file from ? I did a search but didn't find anything ...
I'll put in this enhancement today.
AutoIngest now also does an auto-sync if the machine wakes up from sleep and the last sync was longer than 24 hours ago. But if the machine is WiFi-connected then it takes a while for the connection to become available.
I will add some Reachability-watching, based on SynstemConfiguration.framework, loosely based on how Erica Sadun does it here: https://github.com/erica/uidevice-extension/blob/master/UIDevice-Reachability.m
I just tried setting up AutoIngest. I immediately failed, because changing the account preferences results in exceptions:
An uncaught exception was raised
*** setObjectForKey: object cannot be nil (key: v_Data)
Additionally for mosts key pressed, two characters will appear.
Should this be a difficult fix, I will do this myself.
With auto-sync enabled I launched the app and I could see synching occuring. But the menu option was still "Sync Now".
Instead I expect that I can cancel auto-synching the same way as I would cancel a manual sync, via a "Stop Sync" option.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.