Advertisement
Guest User

Untitled

a guest
Oct 28th, 2012
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         public void SyncBookmarks()
  2.         {
  3.             Browser browser = new Chrome();
  4.             SortableBindingList<Bookmark> marks = browser.ReturnBookmarks();
  5.             SortableBindingList<object> newmarks = new SortableBindingList<object>();
  6.             List<Bookmark> ordered = marks.OrderBy(order => order.fullPath).ToList();
  7.             int count = 0;
  8.             newmarks.Add(new json_top());
  9.             json_top top = newmarks[0] as json_top;
  10.  
  11.             top.roots = new json_root();
  12.             List<object> roots = new List<object>();
  13.  
  14.             Folder bookmarks_bar = new Folder();
  15.             Folder other = new Folder();
  16.             List<Object> barlist = new List<Object>();
  17.             List<object> otherlist = new List<object>();
  18.             List<object> children = new List<object>();
  19.             List<string> existingFolders = new List<string>();
  20.  
  21.             bookmarks_bar.date_added = ToChromeTime(marks[0].added);
  22.             bookmarks_bar.name = "Bookmarks bar";
  23.             other.date_added = ToChromeTime(marks[0].added);
  24.             other.name = "Other bookmarks";
  25.  
  26.             bool isBookmarkBar = true;
  27.  
  28.             Folder folder = new Folder();
  29.             foreach (Bookmark mark in ordered)
  30.             {
  31.                 if (mark.fullPath.Contains("Bookmark Bar\\"))
  32.                 {
  33.                     isBookmarkBar = true;
  34.                     mark.fullPath = mark.fullPath.Replace("Bookmark Bar\\", "");
  35.                 }
  36.                 else if (mark.fullPath.Contains("Other Bookmarks\\"))
  37.                 {
  38.                     isBookmarkBar = false;
  39.                     mark.fullPath = mark.fullPath.Replace("Other Bookmarks\\", "");
  40.                 }
  41.                 else if (mark.fullPath.Contains("Bookmark Bar"))
  42.                 {
  43.                     isBookmarkBar = true;
  44.                     mark.fullPath = mark.fullPath.Replace("Bookmark Bar", "");
  45.                 }
  46.                 else if (mark.fullPath.Contains("Other Bookmarks"))
  47.                 {
  48.                     isBookmarkBar = false;
  49.                     mark.fullPath = mark.fullPath.Replace("Other Bookmarks", "");
  50.                 }
  51.                 else
  52.                 {
  53.                     throw new UriFormatException();
  54.                 }
  55.  
  56.                 List<string> fullpathlist = mark.fullPath.Split('\\').ToList();
  57.                 int count1 = 0;
  58.                 if (currentPath != mark.fullPath)
  59.                 {
  60.                     folder = (createFolder(fullpathlist, fullpathlist[0], mark));
  61.                     folder.children = (setChild(fullpathlist, folder, mark, 1));
  62.                     count++;
  63.                 }
  64.                 json_URL u = new json_URL();
  65.                 u.date_added = ToChromeTime(mark.added);
  66.                 u.id = id;
  67.                 u.name = mark.title;
  68.                 u.url = mark.url;
  69.                 folder.children = (u);
  70.                 if (isBookmarkBar)
  71.                     barlist.Add(folder);
  72.                 else
  73.                 {
  74.                     otherlist.Add(folder);
  75.                 }
  76.                 currentPath = mark.fullPath;
  77.                 id++;
  78.             }
  79.             bookmarks_bar.children = barlist;
  80.             other.children = otherlist;
  81.  
  82.             top.roots.bookmark_bar = (bookmarks_bar);
  83.             top.roots.other = other;
  84.             string json = JsonConvert.SerializeObject(newmarks, Formatting.Indented);
  85.             File.WriteAllText(@"c:\person.json", json);
  86.         }
  87.         private Folder createFolder(List<string> fullpathlist, string s, Bookmark mark)
  88.         {
  89.             Folder folder = new Folder();
  90.             folder.date_added = ToChromeTime(mark.added);
  91.             folder.id = id;
  92.             folder.name = s;
  93.             return folder;
  94.         }
  95.  
  96.         Folder setChild(List<string> fullPathList, Folder parent, Bookmark mark, int count)
  97.         {
  98.             if (count < fullPathList.Count)
  99.             {
  100.                 Folder child = new Folder();
  101.                 child.date_added = ToChromeTime(mark.added);
  102.                 child.id = id;
  103.                 child.name = fullPathList[count];
  104.                 Folder LIST = (setChild(fullPathList, child, mark, count + 1));
  105.                 child.children = (LIST);
  106.                 return child;
  107.             }
  108.             else
  109.             {
  110.                 return null;
  111.             }
  112.         }
  113.  
  114.         class json_root
  115.         {
  116.             public Folder bookmark_bar { get; set; }
  117.             public Folder other { get; set; }
  118.         }
  119.  
  120.         class json_top
  121.         {
  122.             public string checksum { get { return ""; } }
  123.             public json_root roots { get; set; }
  124.             public int version { get { return 1; } }
  125.         }
  126.  
  127.         class folderAndURL { }
  128.  
  129.         class json_URL : folderAndURL
  130.         {
  131.             public long date_added { get; set; }
  132.             public int id { get; set; }
  133.             public string name { get; set; }
  134.             public string type { get { return "url"; } }
  135.             public string url { get; set; }
  136.         }
  137.  
  138.         public class Folder : folderAndURL
  139.         {
  140.             public object children { get; set; }
  141.             public long date_added { get; set; }
  142.             public long date_modified
  143.             {
  144.                 get { return 0; }
  145.             }
  146.             public int id { get; set; }
  147.             public string name { get; set; }
  148.             public string type
  149.             {
  150.                 get { return "folder"; }
  151.             }
  152.         }
  153.  
  154.         public class Bookmark
  155.         {
  156.             public string url { get; set; }
  157.             public string title { get; set; }
  158.             public string browser { get; set; }
  159.             public DateTime added { get; set; }
  160.             public string fullPath { get; set; }
  161.             public object currentPath { get; set; }
  162.             public Bookmark(string url, string title, string browser, DateTime added, string fullPath, object currentPath = null)
  163.             {
  164.                 this.url = url;
  165.                 this.title = title;
  166.                 this.browser = browser;
  167.                 this.added = added;
  168.                 this.fullPath = fullPath;
  169.                 this.currentPath = currentPath;
  170.             }
  171.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement