App script Chat GPT 100% working code. with some minimul errors

/* BAITHKEE BACKEND API 
   Google Apps Script for handling News, Views, and Reports
*/

function doGet(e) {
  var action = e.parameter.action;
  if (action == "getNews") return getNews(e);
  if (action == "addView") return addView(e);
  if (action == "report") return reportNews(e);
  return ContentService.createTextOutput("Baithkee API is Live");
}

function doPost(e) {
  var data = JSON.parse(e.postData.contents);
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NEWS");
  
  // Naya News Post karna
  sheet.appendRow([
    new Date().getTime(), // ID
    data.headline,
    data.text,
    data.username,
    data.photo,
    data.email,
    data.latitude,
    data.longitude,
    new Date().getTime(), // Timestamp
    0, // Views
    "" // Reports (storing as string to check unique users)
  ]);
  
  return ContentService.createTextOutput("posted").setMimeType(ContentService.MimeType.TEXT);
}

function getNews(e) {
  var userLat = parseFloat(e.parameter.lat);
  var userLon = parseFloat(e.parameter.lon);
  var range = parseFloat(e.parameter.range) || 5; // Default 5km
  
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NEWS");
  var rows = sheet.getDataRange().getValues();
  var result = [];
  var now = new Date().getTime();

  for (var i = rows.length - 1; i > 0; i--) {
    var row = rows[i];
    var postTime = row[8];
    var hours = (now - postTime) / 3600000;

    // 1. 24 Ghante wala filter
    if (hours > 24) {
      sheet.deleteRow(i + 1); 
      continue;
    }

    // 2. Geolocation (Distance) wala filter
    var distance = calculateDistance(userLat, userLon, row[6], row[7]);
    
    if (distance <= range) {
      result.push({
        id: row[0],
        headline: row[1],
        text: row[2],
        username: row[3],
        photo: row[4],
        time: postTime,
        views: row[9]
      });
    }
  }

  // 3. Views ke basis par Sort karna (Ranking System)
  result.sort((a, b) => b.views - a.views);

  return ContentService.createTextOutput(JSON.stringify(result.slice(0, 100)))
    .setMimeType(ContentService.MimeType.JSON);
}

function addView(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NEWS");
  var data = sheet.getDataRange().getValues();
  for (var i = 1; i < data.length; i++) {
    if (data[i][0] == e.parameter.id) {
      sheet.getRange(i + 1, 10).setValue(data[i][9] + 1);
      break;
    }
  }
  return ContentService.createTextOutput("viewed");
}

function reportNews(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("NEWS");
  var data = sheet.getDataRange().getValues();
  var userEmail = e.parameter.email;

  for (var i = 1; i < data.length; i++) {
    if (data[i][0] == e.parameter.id) {
      var reports = data[i][10] ? data[i][10].split(",") : [];
      if (reports.indexOf(userEmail) == -1) {
        reports.push(userEmail);
        if (reports.length >= 5) {
          sheet.deleteRow(i + 1); // 5 Reports par delete
        } else {
          sheet.getRange(i + 1, 11).setValue(reports.join(","));
        }
      }
      break;
    }
  }
  return ContentService.createTextOutput("reported");
}

function calculateDistance(lat1, lon1, lat2, lon2) {
  var R = 6371; 
  var dLat = (lat2 - lat1) * Math.PI / 180;
  var dLon = (lon2 - lon1) * Math.PI / 180;
  var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(lat1*Math.PI/180) * Math.cos(lat2*Math.PI/180) * Math.sin(dLon/2) * Math.sin(dLon/2);
  return R * (2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)));
}

इस ब्लॉग से लोकप्रिय पोस्ट

The History of the World – A Simple and Long Article for English Learners

High Level Advance Random English Words

1. The Art of Self-Discipline