diff --git a/Delete b/Delete
new file mode 100644
index 00000000..ec682e10
--- /dev/null
+++ b/Delete
@@ -0,0 +1,70 @@
+/**
+ * 1. open cloudflare dashboard, choose domain, go to DNS section
+ * 2. open browser's dev tool (via F12 or inspect or however)
+ * 3. in devtool, go to console tab
+ * 4. clear all existing messages
+ * 5. paste all script below
+ * 6. hit enter and watch
+ * 7. script only delete records displayed in the screen
+ * 8. if want to delete more, refresh browser and run script again
+ *
+ * credit: edited from https://gist.github.com/AidasK/9550e1eb97b3b121c5122aef0d778608
+ */
+
+deleteAllRecords();
+
+async function deleteAllRecords() {
+ let e;
+ filterEditButtons().forEach((e) => e.click());
+ while (e = filterDeleteButtons()[0]) {
+ e.click();
+ await confirmDelete();
+ }
+}
+function filterDeleteButtons() {
+ return [
+ ...[...document.querySelectorAll('a')].filter((e) => e.innerHTML === 'Delete'),
+ ...[...document.querySelectorAll('button')].filter((e) => e.innerHTML === 'Delete'),
+ ];
+}
+function filterEditButtons() {
+ return [
+ ...document.querySelectorAll('a'),//old layout
+ ...document.querySelectorAll('button')
+ ].filter((e) => e.innerHTML.includes('Edit'));
+}
+function confirmDelete(iteration) {
+ iteration = iteration || 1;
+ return new Promise((resolve, reject) => {
+ setTimeout(async () => {
+ let button = [...document.querySelectorAll('button')].filter((e) => e.innerHTML === 'Delete')[0];
+ if (button) {
+ button.click();
+ await waitConfirmDelete();
+ resolve();
+ } else if (iteration > 30) {
+ console.log('failed confirmDelete');
+ reject();
+ } else {
+ confirmDelete(iteration + 1)
+ }
+ }, 100);
+ });
+}
+function waitConfirmDelete() {
+ return new Promise((resolve, reject) => {
+ let iteration = 1;
+ let i = setInterval(() => {
+ if (iteration++ > 30) {
+ clearInterval(i);
+ reject();
+ return;
+ }
+ if ([...document.querySelectorAll('button')].filter((e) => e.innerHTML === 'Delete')[0]) {
+ return;
+ }
+ clearInterval(i);
+ resolve();
+ }, 100)
+ });
+}