mirror of https://github.com/vitalif/grive2
Ignore local .trash, fix REST API - it mostly works
parent
2d34d7708b
commit
0bdbf87514
|
@ -42,6 +42,7 @@ Resource::Resource( const fs::path& root_folder ) :
|
|||
m_name ( root_folder.string() ),
|
||||
m_kind ( "folder" ),
|
||||
m_id ( "folder:root" ),
|
||||
m_href ( "root" ),
|
||||
m_parent ( 0 ),
|
||||
m_state ( sync ),
|
||||
m_is_editable( true )
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace gr {
|
|||
using namespace details ;
|
||||
|
||||
ResourceTree::ResourceTree( const fs::path& rootFolder ) :
|
||||
m_root( new Resource( rootFolder ) )
|
||||
m_root( new Resource( rootFolder ) )
|
||||
{
|
||||
m_set.insert( m_root ) ;
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ void State::FromLocal( const fs::path& p )
|
|||
|
||||
bool State::IsIgnore( const std::string& filename )
|
||||
{
|
||||
return filename == ".grive" || filename == ".grive_state";
|
||||
return filename == ".grive" || filename == ".grive_state" || filename == ".trash";
|
||||
}
|
||||
|
||||
void State::FromLocal( const fs::path& p, Resource* folder )
|
||||
|
@ -135,9 +135,7 @@ void State::FromRemote( const Entry& e )
|
|||
FromChange( e ) ;
|
||||
|
||||
else if ( !Update( e ) )
|
||||
{
|
||||
m_unresolved.push_back( e ) ;
|
||||
}
|
||||
}
|
||||
|
||||
void State::ResolveEntry()
|
||||
|
|
|
@ -72,8 +72,8 @@ void Entry1::Update( const xml::Node& n )
|
|||
for ( xml::NodeSet::iterator i = parents.begin() ; i != parents.end() ; ++i )
|
||||
{
|
||||
std::string href = (*i)["@href"];
|
||||
if ( href == root_href ) // API-independent root href is empty!
|
||||
href = "";
|
||||
if ( href == root_href )
|
||||
href = "root"; // API-independent root href
|
||||
m_parent_hrefs.push_back( href ) ;
|
||||
}
|
||||
|
||||
|
|
|
@ -57,26 +57,28 @@ void Entry2::Update( const Val& item )
|
|||
m_etag = file["etag"] ;
|
||||
Val fn;
|
||||
m_filename = file.Get( "originalFilename", fn ) ? fn.Str() : std::string();
|
||||
m_content_src = file["downloadUrl"] ;
|
||||
m_self_href = file["selfLink"] ;
|
||||
m_mtime = DateTime( file["modifiedDate"] ) ;
|
||||
|
||||
m_resource_id = file["id"];
|
||||
m_md5 = file["md5Checksum"] ;
|
||||
m_is_dir = file["mimeType"].Str() == mime_types::folder ;
|
||||
m_is_editable = file["editable"].Bool() ;
|
||||
m_is_removed = file["labels"]["trashed"].Bool() ;
|
||||
if ( !m_is_dir )
|
||||
{
|
||||
m_md5 = file["md5Checksum"] ;
|
||||
m_content_src = file["downloadUrl"] ;
|
||||
// convert to lower case for easy comparison
|
||||
std::transform( m_md5.begin(), m_md5.end(), m_md5.begin(), tolower ) ;
|
||||
}
|
||||
|
||||
m_parent_hrefs.clear( ) ;
|
||||
|
||||
Val::Array parents = file["parents"].AsArray() ;
|
||||
for ( Val::Array::iterator i = parents.begin() ; i != parents.end() ; ++i )
|
||||
{
|
||||
m_parent_hrefs.push_back( (*i)["isRoot"].Bool() ? std::string() : (*i)["parentLink"] ) ; // maybe .id?
|
||||
m_parent_hrefs.push_back( (*i)["isRoot"].Bool() ? std::string( "root" ) : (*i)["parentLink"] ) ;
|
||||
}
|
||||
|
||||
// convert to lower case for easy comparison
|
||||
std::transform( m_md5.begin(), m_md5.end(), m_md5.begin(), tolower ) ;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue