Plugin Directory

Changeset 2801375


Ignore:
Timestamp:
10/19/2022 06:01:09 PM (3 years ago)
Author:
pipewebmonetization
Message:

Send tips data to dashboard

Location:
pipe-web-monetization/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • pipe-web-monetization/trunk/README.txt

    r2796736 r2801375  
    55Requires at least: 4.9
    66Tested up to: 6.0.2
    7 Stable tag: 1.0.2
     7Stable tag: 1.0.3
    88Requires PHP: 7.0
    99License: GPLv2 or later
     
    4646* Fix small issues
    4747
     48= 1.0.3 =
     49* Send tips data to dashboard
     50
    4851== Upgrade Notice ==
    49 * Fix small issues
     52* Send tips data to dashboard
    5053
    5154== Arbitrary section ==
  • pipe-web-monetization/trunk/includes/class-pipe-web-monetization.php

    r2796736 r2801375  
    117117       
    118118          ?>
    119           <div class="wrap pipe-div">
     119          <div class="wrap">
    120120           
    121121            <div class="div-main-title"><span><?php echo esc_html( get_admin_page_title() ); ?></span></div>
  • pipe-web-monetization/trunk/pipe-web-monetization.php

    r2796736 r2801375  
    1616 * Plugin URI:        http://plugin.pipewebmonetization.com/
    1717 * Description:       Pipe allows you to control who gets paid for your content and connect your payments to an admin dashboard.
    18  * Version:           1.0.2
     18 * Version:           1.0.3
    1919 * Author:            Pipe
    2020 * Requires at least: 4.9
     
    3636 * Rename this for your plugin and update it as you release new versions.
    3737 */
    38 define( 'PIPE_WEB_MONETIZATION_VERSION', '1.0.0' );
     38define( 'PIPE_WEB_MONETIZATION_VERSION', '1.0.3' );
    3939
    4040/**
  • pipe-web-monetization/trunk/public/js/pipe-web-monetization.js

    r2787294 r2801375  
    11class Batcher {
    2  
    32  transactionsList = [];
    4   timeout = 60 * 300; 
    5   pluginId = ""
    6   paymentPointer = ""
    7  
     3  timeout = 2000;
     4  pluginId = "";
     5  paymentPointer = "";
     6
    87  setPluginId(value) {
    9     this.pluginId = value
     8    this.pluginId = value;
    109  }
    1110
    1211  setPaymentPointer(value) {
    13     this.paymentPointer = String(value).trim()
     12    this.paymentPointer = String(value).trim();
    1413  }
    1514
     
    3837    }
    3938    const totalValue = this.transactionsList.reduce(
    40       (previousValue, currentValue) => previousValue + currentValue.value, 0
     39      (previousValue, currentValue) => previousValue + currentValue.value,
     40      0
    4141    );
    4242    const data = {
    43       "pluginId": this.pluginId,
    44       "paymentPointer": this.paymentPointer,
    45       "date": new Date().getTime(),
    46       "totalValue": totalValue,
    47       "transactions": this.transactionsList
    48     }
    49     await fetch(`https://94w4fmrdq3.execute-api.us-east-1.amazonaws.com/Dev/api/transactions`, {
    50       method: 'POST',
    51       body: JSON.stringify(data),
    52       headers:
     43      pluginId: this.pluginId,
     44      paymentPointer: this.paymentPointer,
     45      date: new Date().getTime(),
     46      totalValue: totalValue,
     47      transactions: this.transactionsList,
     48    };
     49    await fetch(
     50      `https://94w4fmrdq3.execute-api.us-east-1.amazonaws.com/Dev/api/transactions`,
    5351      {
    54         'Content-Type': 'application/json',
     52        method: "POST",
     53        body: JSON.stringify(data),
     54        headers: {
     55          "Content-Type": "application/json",
     56        },
    5557      }
    56     });
     58    );
    5759    this.transactionsList = [];
    5860  }
     
    6062
    6163jQuery(function ($) {
    62  
    6364  function setupMetaTag(pointer) {
    6465    $("head").append(pointer);
     
    6667
    6768  if (!ajax_variables.logged_in) {
    68     const pointer = "<meta name='monetization' content='" + $('#monetization').attr('name') + "' />";
    69     setupMetaTag(pointer)
    70     setupMonetizationListeners()
     69    const pointer =
     70      "<meta name='monetization' content='" +
     71      $("#monetization").attr("name") +
     72      "' />";
     73    setupMetaTag(pointer);
     74    setupMonetizationListeners();
    7175  }
    72 
    7376
    7477  async function setupMonetizationListeners() {
    7578    const batcher = new Batcher();
    7679
    77       if (!document.monetization) {
    78         return;
    79       }
     80    if (!document.monetization) {
     81      return;
     82    }
    8083
    81       batcher.setPluginId(plugin_options.pwm_plugin_id);
    82       batcher.setPaymentPointer(document.querySelector('meta[name="monetization"]').getAttribute('content'));
     84    batcher.setPluginId(plugin_options.pwm_plugin_id);
     85    batcher.setPaymentPointer(
     86      document
     87        .querySelector('meta[name="monetization"]')
     88        .getAttribute("content")
     89    );
    8390
    84       document.monetization.addEventListener(
    85         'monetizationprogress',
    86         (event) => {
    87           batcher.add({
    88             date: new Date().getTime(),
    89             value: Number((Number(event.detail.amount) * (10**(-1*event.detail.assetScale))).toFixed(event.detail.assetScale))
    90           });
    91         }
    92       );
    93  
    94       batcher.scheduleFlush();
     91    document.monetization.addEventListener("monetizationprogress", (event) => {
     92      batcher.add({
     93        date: new Date().getTime(),
     94        value: Number(
     95          (
     96            Number(event.detail.amount) *
     97            10 ** (-1 * event.detail.assetScale)
     98          ).toFixed(event.detail.assetScale)
     99        ),
     100      });
     101    });
     102
     103    document.monetization.addEventListener("tip", (event) => {
     104      batcher.add({
     105        date: new Date().getTime(),
     106        value: Number(
     107          (
     108            Number(event.detail.amount) *
     109            10 ** (-1 * event.detail.assetScale)
     110          ).toFixed(event.detail.assetScale)
     111        ),
     112      });
     113    });
     114
     115    batcher.scheduleFlush();
    95116  }
    96117
    97118  function simulateMonetization() {
    98119    if (document.monetization) {
    99       const randomGuid = 'c7ff7da9-8a41-4660-98a8-ca4df0176fbe';
     120      const randomGuid = "c7ff7da9-8a41-4660-98a8-ca4df0176fbe";
    100121
    101122      const meta = document.querySelector('meta[name="monetization"]');
    102123      let metaContent = null;
    103124      if (meta) {
    104         metaContent = meta.getAttribute('content');
     125        metaContent = meta.getAttribute("content");
    105126      }
    106127
    107128      if (metaContent) {
    108         const resolvedEndpoint = metaContent.replace(/^\$/, 'https://');
     129        const resolvedEndpoint = metaContent.replace(/^\$/, "https://");
    109130
    110         const monetizationstartEvent = new CustomEvent('monetizationstart', {
     131        const monetizationstartEvent = new CustomEvent("monetizationstart", {
    111132          detail: {
    112133            requestId: randomGuid,
    113134            id: randomGuid,
    114135            metaContent,
    115             resolvedEndpoint
    116           }
     136            resolvedEndpoint,
     137          },
    117138        });
    118139
    119 
    120         const monetizationprogressEvent = new CustomEvent('monetizationprogress', {
    121           detail: {
    122             "amount": "200000",
    123             "assetCode": "USD",
    124             "assetScale": 9
     140        const monetizationprogressEvent = new CustomEvent(
     141          "monetizationprogress",
     142          {
     143            detail: {
     144              amount: "200000",
     145              assetCode: "USD",
     146              assetScale: 9,
     147            },
    125148          }
    126         });
     149        );
    127150
    128151        document.monetization.dispatchEvent(monetizationstartEvent);
     
    131154        setInterval(() => {
    132155          document.monetization.dispatchEvent(monetizationprogressEvent);
    133         }, 6000)
    134       }
    135       else {
    136         alert('monetization meta tag is not correctly configured.')
     156        }, 6000);
     157      } else {
     158        alert("monetization meta tag is not correctly configured.");
    137159      }
    138160    }
    139161  }
    140 
    141162});
Note: See TracChangeset for help on using the changeset viewer.