update.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. function aggiornaPages() {
  2. var jsonurl = weburl + "wp-json/wp/v2/pages/";
  3. $.ajax({
  4. dataType: "json"
  5. , url: jsonurl
  6. , success: function (data) {
  7. $.each(data, function (key, val) {
  8. var id = val.id;
  9. var time = val.modified;
  10. var title = val.title.rendered;
  11. var content = val.content.rendered;
  12. FONTE.dbHandler.executeSql('INSERT INTO xm24_pages VALUES (?,?,?,?)', [id, title, time, content], function (resultSet) {
  13. console.log('resultSet.insertId: ' + resultSet.insertId);
  14. console.log('resultSet.rowsAffected: ' + resultSet.rowsAffected);
  15. }, function (error) {
  16. console.log('INSERT error: ' + error.message);
  17. });
  18. });
  19. }
  20. , error: JSONErrorHandler
  21. });
  22. };
  23. function aggiornaSingleCategory(category) {
  24. //resetta la variabile d'errore per le chiamate ajax asincrone
  25. FONTE.ajaxError = false;
  26. var jsonurl = weburl + "wp-json/wp/v2/posts?per_page=100";
  27. var storage = window.localStorage;
  28. var lastUpdate = storage.getItem('db_update_date');
  29. if (lastUpdate) jsonurl += "&filter[date_query][column]=post_modified_gmt&filter[date_query][after]=" + lastUpdate;
  30. getSinglePageRecur(jsonurl, category, 1)
  31. };
  32. function aggiornaTagsToPosts(id, tagId) {
  33. FONTE.dbHandler.executeSql('INSERT INTO xm24_tags_to_posts VALUES (?,?)', [id, tagId], function (resultSet) {
  34. console.log('resultSet.insertId: ' + resultSet.insertId);
  35. console.log('resultSet.rowsAffected: ' + resultSet.rowsAffected);
  36. }, function (error) {
  37. console.log('INSERT error: ' + error.message);
  38. //feedback
  39. $("#aggiorna").attr("src", "./image/aggiorna.png");
  40. });
  41. }
  42. function aggiornaTags(pagenum) {
  43. var jsonurl = weburl + "wp-json/wp/v2/tags?per_page=100&page=" + pagenum;
  44. $.ajax({
  45. dataType: "json"
  46. , url: jsonurl
  47. , success: function (data, status, xhr) {
  48. var totalPages = parseInt(xhr.getResponseHeader("X-WP-TotalPages"));
  49. $.each(data, function (key, val) {
  50. var name = val.name;
  51. var slug = val.slug;
  52. var id = val.id;
  53. var blob = JSON.stringify(val);
  54. FONTE.dbHandler.executeSql('INSERT INTO xm24_tags VALUES (?,?,?)', [id, slug, blob], function (resultSet) {
  55. console.log('resultSet.insertId: ' + resultSet.insertId);
  56. console.log('resultSet.rowsAffected: ' + resultSet.rowsAffected);
  57. }, function (error) {
  58. console.log('INSERT error: ' + error.message);
  59. });
  60. });
  61. pagenum += 1
  62. if (pagenum <= totalPages) aggiornaTags(pagenum)
  63. }
  64. , error: JSONErrorHandler
  65. });
  66. };
  67. function aggiornaora() {
  68. $("#aggiornaora").popup("open");
  69. };
  70. function resetAndUpdate() {
  71. var storage = window.localStorage;
  72. //resetto la data e droppo le tabelle
  73. storage.setItem('db_update_date', null);
  74. FONTE.dbHandler.executeSql('DROP TABLE IF EXISTS xm24_posts;');
  75. FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_posts (id INTEGER PRIMARY KEY, title, date, category, post)');
  76. partialUpdate();
  77. }
  78. function update() {
  79. FONTE.dbHandler.executeSql('SELECT COUNT(*) AS numPosts FROM xm24_posts', [], function (resultSet) {
  80. var numPosts = resultSet.rows.item(0).numPosts;
  81. if (numPosts < 300) { //questo numero e' scelto in maniera arbitraria, ricordati Cri.
  82. resetAndUpdate()
  83. } else {
  84. partialUpdate();
  85. }
  86. });
  87. }
  88. function partialUpdate() {
  89. //feedback
  90. $("#aggiorna").attr("src", "./image/icona_aggiorna.gif");
  91. var storage = window.localStorage;
  92. var jsonurl = weburl + "wp-json/wp/v2/posts?per_page=100&categories=";
  93. FONTE.updatedCategoriesCount = 0;
  94. FONTE.updatedPostsCount = 0;
  95. FONTE.neededPostsCount = 0;
  96. for (var index in FONTE.categoriesList) {
  97. aggiornaSingleCategory(FONTE.categoriesList[index])
  98. }
  99. FONTE.dbHandler.executeSql('DROP TABLE IF EXISTS xm24_tags;');
  100. // FONTE.dbHandler.executeSql('DROP TABLE IF EXISTS xm24_tags_to_posts;');
  101. FONTE.dbHandler.executeSql('DROP TABLE IF EXISTS xm24_pages;');
  102. FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_tags (id INTEGER PRIMARY KEY, title, tag)');
  103. // FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_tags_to_posts (id, tagid)');
  104. FONTE.dbHandler.executeSql('CREATE TABLE IF NOT EXISTS xm24_pages (id INTEGER PRIMARY KEY, title, date, page)');
  105. aggiornaTags(1);
  106. aggiornaPages();
  107. var firstTime = storage.getItem('db_lastnews_firsttime');
  108. if (firstTime == null) storage.setItem('db_lastnews_firsttime', 'yes');
  109. if (firstTime == 'yes') storage.setItem('db_lastnews_firsttime', 'no');
  110. $("#benvenuta").popup("close");
  111. checkloader();
  112. };
  113. /*
  114. * data ultimo aggiornamento
  115. */
  116. function ultimoAggiornamento() {
  117. var lastUpdate = window.localStorage.getItem('db_update_date');
  118. if (lastUpdate) {
  119. var data = lastUpdate.split('T');
  120. var datagiorno = data[0];
  121. var dataora = data[1];
  122. $("#datadiritti").empty();
  123. $("#datadirittiora").empty();
  124. display_results("#datadiritti", datagiorno)
  125. display_results("#datadirittiora", dataora)
  126. if (data) {
  127. $("#boxdata").css("display", "block");
  128. }
  129. } else {
  130. toastr.warning('Warn: manca la data del tuo ultimo aggiornamento. Aggiorna al più presto.');
  131. }
  132. };