Report findings of possible github zipfile caching in a comment, improve a Sprintf() setup.
This commit is contained in:
parent
e07b4cbe86
commit
9bce766331
|
@ -24,6 +24,45 @@
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
While exploring the possibility of local caching of the zip file, I discovered
|
||||||
|
this command to retrieve the time stamp of the last commit into any particular
|
||||||
|
repo:
|
||||||
|
|
||||||
|
$time curl -I -i https://api.github.com/repos/KiCad/Mounting_Holes.pretty
|
||||||
|
|
||||||
|
This gets just the header to what would otherwise return information on the repo
|
||||||
|
in JSON format, and is reasonably faster than actually getting the repo
|
||||||
|
in zip form. However it still takes 5 seconds or more when github is busy, so
|
||||||
|
I have lost my enthusiasm for local caching until a faster time stamp retrieval
|
||||||
|
mechanism can be found, or github gets more servers. But note that the occasionally
|
||||||
|
slow response is the exception rather than the norm. Normally the response is
|
||||||
|
down around a 1/3 of a second. The information we would use is in the header
|
||||||
|
named "Last-Modified" as seen below. This would need parsing, but avhttp may
|
||||||
|
offer some help there, if not, then boost async probably does.
|
||||||
|
|
||||||
|
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
Server: GitHub.com
|
||||||
|
Date: Mon, 27 Jan 2014 15:46:46 GMT
|
||||||
|
Content-Type: application/json; charset=utf-8
|
||||||
|
Status: 200 OK
|
||||||
|
X-RateLimit-Limit: 60
|
||||||
|
X-RateLimit-Remaining: 49
|
||||||
|
X-RateLimit-Reset: 1390839612
|
||||||
|
Cache-Control: public, max-age=60, s-maxage=60
|
||||||
|
Last-Modified: Mon, 02 Dec 2013 10:08:51 GMT
|
||||||
|
ETag: "3d04d760f469f2516a51a56eac63bbd5"
|
||||||
|
Vary: Accept
|
||||||
|
X-GitHub-Media-Type: github.beta
|
||||||
|
X-Content-Type-Options: nosniff
|
||||||
|
Content-Length: 6310
|
||||||
|
Access-Control-Allow-Credentials: true
|
||||||
|
Access-Control-Expose-Headers: ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
|
||||||
|
Access-Control-Allow-Origin: *
|
||||||
|
X-GitHub-Request-Id: 411087C2:659E:50FD6E6:52E67F66
|
||||||
|
Vary: Accept-Encoding
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -493,13 +532,17 @@ void GITHUB_PLUGIN::remote_get_zip( const wxString& aRepoURL ) throw( IO_ERROR )
|
||||||
catch( boost::system::system_error& e )
|
catch( boost::system::system_error& e )
|
||||||
{
|
{
|
||||||
// https "GET" has faild, report this to API caller.
|
// https "GET" has faild, report this to API caller.
|
||||||
wxString errorcmd( wxT("https GET command failed") ); // Do not translate this message
|
static const char errorcmd[] = "https GET command failed"; // Do not translate this message
|
||||||
wxString fmt( _( "%s\nCannot get/download Zip archive: '%s'\nfor library path: '%s'.\nReason: '%s'" ) );
|
|
||||||
|
|
||||||
string msg = StrPrintf( TO_UTF8( fmt ),
|
UTF8 fmt( _( "%s\nCannot get/download Zip archive: '%s'\nfor library path: '%s'.\nReason: '%s'" ) );
|
||||||
TO_UTF8( errorcmd ),
|
|
||||||
zip_url.c_str(),
|
string msg = StrPrintf( fmt.c_str(),
|
||||||
TO_UTF8( aRepoURL ),
|
errorcmd,
|
||||||
|
// Report both secret zip_url and Lib Path, to user. The secret
|
||||||
|
// zip_url may go bad at some point in future if github changes
|
||||||
|
// their server architecture. Then fix repoURL_zipURL() to reflect
|
||||||
|
// new architecture.
|
||||||
|
zip_url.c_str(), TO_UTF8( aRepoURL ),
|
||||||
e.what() );
|
e.what() );
|
||||||
|
|
||||||
THROW_IO_ERROR( msg );
|
THROW_IO_ERROR( msg );
|
||||||
|
|
|
@ -39,7 +39,7 @@ struct GH_CACHE;
|
||||||
<p>It could have used version 3 of the github.com API documented here:
|
<p>It could have used version 3 of the github.com API documented here:
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
http://developer.github.com
|
http://developer.github.com/v3/
|
||||||
https://help.github.com/articles/creating-an-access-token-for-command-line-use
|
https://help.github.com/articles/creating-an-access-token-for-command-line-use
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue