小编sfa*_*oso的帖子

如何在不同属性比较器的两个对象数组之间获得差异?

我有这两个数组:

主要:

[
   { id: "1"},
   { id: "2"},
   { id: "3"}
]
Run Code Online (Sandbox Code Playgroud)

过滤:

[
   { id: "80", link_id: "1"},
   { id: "50", link_id: null},
   { id: "67", link_id: "3"}
]
Run Code Online (Sandbox Code Playgroud)

我需要获取main其中包含filtered属性的ID 的项目:link_id,我尝试过:

main.filter(x => filtered.includes(x.id));
Run Code Online (Sandbox Code Playgroud)

问题是这将返回null,并且这也不允许我检查是否link_id为null

var main = [{
      id: "1"
    },
    {
      id: "2"
    },
    {
      id: "3"
    }
  ],
  filtered = [{
      id: "80",
      link_id: "1"
    },
    {
      id: "50",
      link_id: null
    },
    {
      id: "67",
      link_id: "3" …
Run Code Online (Sandbox Code Playgroud)

javascript

8
推荐指数
1
解决办法
79
查看次数

如何从 v1/catalogs API 中删除 PayPal 产品?

我想从删除产品catalogs,但我找不到任何API执行此操作的方法,这里是文档

我知道如何获得所有产品:

https://api.sandbox.paypal.com/v1/catalogs/products?page_size=10&page=1&total_required=true
Run Code Online (Sandbox Code Playgroud)

这将返回如下内容:

{
"products": [
    {
        "id": "PROD-8DN39312TB525331M",
        "name": "Video Streaming Service",
        "description": "Video streaming service",
        "create_time": "2020-01-07T18:50:01Z",
        "links": [
            {
                "href": "https://api.sandbox.paypal.com/v1/catalogs/products/PROD-8DN39312TB525331M",
                "rel": "self",
                "method": "GET"
            }
        ]
    },
   ...
Run Code Online (Sandbox Code Playgroud)

有没有实际的方法来删除产品?

paypal paypal-subscriptions paypal-sandbox paypal-rest-sdk

7
推荐指数
1
解决办法
1050
查看次数

如何在容器中安装 Composer 依赖项?

我正在尝试做什么

我正在尝试对这个基于 CodeIgniter 4 构建的 php 应用程序进行 dockerize。该应用程序具有以下依赖项,这些依赖项通常通过 Composer 安装:

"require": {
    "php": "^7.3 || ^8.0",
    "myth/auth": "dev-develop",
    "codeigniter4/framework": "^4.1",
    "codeigniter4/translations" : "^4.0"
},
Run Code Online (Sandbox Code Playgroud)

项目结构组织如下:

docker
    database
    nginx
    php-fpm
    docker-compose.yml
src
    ... app files ...
tests
composer.json
Run Code Online (Sandbox Code Playgroud)

在里面docker-compose.yml我有一个名为的服务php-fpm,它将所有应用程序文件复制到公共/var/www/html目录nginx

php-fpm:
  container_name: boilerplate_app
  build:
    context: ./php-fpm
  volumes:
    - ../src:/var/www/html
Run Code Online (Sandbox Code Playgroud)

我需要做的是使用 Composer 安装应用程序依赖项。

我尝试过的

最初,我想在Dockerfile可用php-fpm文件夹中执行此操作:

FROM php:8.0.2-fpm-alpine

RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-install mysqli    

# Install Composer
COPY --from=composer /usr/bin/composer …
Run Code Online (Sandbox Code Playgroud)

php composer-php docker docker-compose

7
推荐指数
1
解决办法
1万
查看次数

How to execute different query based on returned value?

I have a list of football matches defined as follow:

id |        datetime      | status | gameweek | round_id | home_team_id
 1   2019-03-31 00:00:00      1          29     12696          1243
 2   2019-03-31 00:00:00      1          29     12696          1248
 3   2019-03-31 00:00:00      1          29     12696          1242
 4   2019-03-31 00:00:00      1          29     12696          1246
 5   2019-03-31 00:00:00      1          29     12696          1244
 6   2019-03-31 00:00:00      1          29     12696          1247
 7   2019-03-31 20:30:00      1          29     12696          1241
 8   2019-03-31 00:00:00      1          29     12696          1249
 9   2019-03-31 00:00:00 …
Run Code Online (Sandbox Code Playgroud)

mysql sql

6
推荐指数
1
解决办法
354
查看次数

Stage.enter无法启动向导

我创建了一个向用户显示调查向导的应用程序。当用户启动/ start命令时,我将调用AddProject

const Telegraf = require('telegraf');
const bot = new Telegraf(process.env.BOT_TOKEN);
const session = require('telegraf/session');
bot.use(session());

const main = new TelegrafInlineMenu("Welcome.");
main.setCommand('start');
main.simpleButton('Start Survey', 'START_SURVEY', {
  doFunc: async ctx => surveyController.AddProject(ctx, bot)
});
Run Code Online (Sandbox Code Playgroud)

基本上,以上代码创建了一个菜单,其中显示了标签Welcome(欢迎)和一个按钮以启动调查。当用户单击按钮时,从SurveyController调用方法AddProject:

const Composer = require('telegraf/composer');
const stepHandler = new Composer();
const Stage = require('telegraf/stage');
const WizardScene = require('telegraf/scenes/wizard');
const userController = require('../controllers/user.controller');

module.exports = {

  AddProject: async function (ctx, bot) {

    const superWizard = new WizardScene('super-wizard',
      (ctx) => {
        ctx.reply('Step 1', Markup.inlineKeyboard([
          Markup.urlButton('??', 'http://telegraf.js.org'),
          Markup.callbackButton('?? …
Run Code Online (Sandbox Code Playgroud)

javascript node.js telegram telegram-bot telegraf

6
推荐指数
1
解决办法
603
查看次数

如何管理私人频道的邀请链接?

我做了什么:

Telegram使用TelegrafJS框架开发了一个机器人。这个机器人允许用户订阅付费频道,这个频道是私有的。

所以支付完成后,机器人会发送邀请链接,让用户加入频道。

问题

现在假设付费用户将邀请链接发送给另一个用户(谁没有付费),非付费用户将获得对付费频道的访问,就像付费一样。

在想解决办法之前,有必要了解一下Telegram的邀请链接的限制:

  • 如果没有邀请链接,则无法将用户添加到频道;
  • 无法创建一次性邀请链接;
  • 无法创建个人邀请链接(只有一个用户可以使用);
  • 邀请链接缓存在 Telegram 服务器上,如果您将它们重置得太快就会变得不稳定(尝试使用 Telegram 应用程序在 10 秒内重置链接 2-3 次——您会明白我的意思)。

我认为的解决方案

我想在一个内嵌按钮后面显示邀请链接,所以用户会看到点击这里按钮 3 秒钟,然后这将被撤销并创建另一个链接。这并没有消除无需付费订阅即可访问付费频道的问题,但它使不公平用户的生活变得更加困难。

可能的其他问题:当用户点击链接时:

抱歉,此频道似乎不存在。

这意味着该频道的邀请链接目前不稳定。它通常发生在连续多次单击“加入”之后,或者如果多个用户同时尝试加入。

尝试次数过多,请稍后再试

这意味着用户最近点击了太多无效的邀请链接。最有可能的是,他在此之前收到了很多消息“对不起,此频道似乎不存在”,或者连续加入了太多频道/群组。

结论

有没有更安全的方法来处理这个问题?

node.js telegram telegram-bot node-telegram-bot-api

6
推荐指数
1
解决办法
7984
查看次数

使用 nginx-proxy 找不到 nginx 返回文件并且不加载静态文件

我正在使用nginx-proxy-automation运行我使用编写的 php 应用程序,CodeIgniter 4应用程序结构如下:

php-application
   docker
       php-fpm
            config
                php.ini
           Dockerfile
   src
       node_modules
       app
       public
       tests
       vendor
       writable
       .env
       composer.json
       package.json
       spark
   docker-comopse.yml
Run Code Online (Sandbox Code Playgroud)

index.php文件在public文件夹内可用。该docker-compose.ymlphp-application包含了以下的东西:

nginx
    nginx-proxy
       docker-compose.yml
    php-application
       docker-compose.yml
Run Code Online (Sandbox Code Playgroud)

在里面php-application/docker-compose.yml我有这个:

version: '3.7'

services:
  php-fpm:
    container_name: boilerplate_app
    restart: always
    build:
      context: .
      dockerfile: ./docker/php-fpm/Dockerfile
    volumes:
      - ./src:/var/www/html
    environment:
      # NGINX-PROXY ENVIRONMENT VARIABLES: UPDATE ME
      - VIRTUAL_HOST=mysite.com
      - VIRTUAL_ROOT=/var/www/html/public
      - VIRTUAL_PORT=9000
      - VIRTUAL_PROTO=fastcgi
      - LETSENCRYPT_HOST=mysite.com
      - LETSENCRYPT_EMAIL=info@mysite.com
      - NETWORK=proxy …
Run Code Online (Sandbox Code Playgroud)

php nginx docker docker-compose jwilder-nginx-proxy

6
推荐指数
1
解决办法
557
查看次数

left_chat_member 未调用

机器人描述

我正在使用TelegrafJS开发Telegram机器人。我创建了自己的中间件,它应该处理发送到组的所有更新消息,特别是,如果更新是服务消息,则机器人必须将其删除。

问题

问题在于机器人仅捕获new_chat_members用户离开聊天时的事件,而left_chat_member不会调用该事件。

中间件代码

class MessageHandler {
    /**
     * Check if is a message service
     */
    _checkServiceMessage(ctx) {
        let unwantedMessages = ['new_chat_members', 'left_chat_member', 'new_chat_title'];
        let isUnwanted = unwantedMessages.some(x => ctx.updateSubTypes.includes(x));

        if (isUnwanted) {

            console.log(ctx.updateSubTypes);

            // Delete service message
            ctx.deleteMessage().then(function (result) {

                // add or remove user to my own db

            }).catch(function (e) {
                console.log(e);
            });
        }
    }

    middleware() {
        return (ctx, next) => {

            this._checkServiceMessage(ctx);

            return next();
        }
    }
}

module.exports …
Run Code Online (Sandbox Code Playgroud)

node.js telegram telegram-bot

5
推荐指数
1
解决办法
1107
查看次数

无法在外部 dbgetaddrinfo 上连接 Wordpress 失败:名称或服务未知

我想在 上运行我的Wordpress网站Docker,并且我想将Wordpress数据库连接到另一个只有我所有网站的数据库的容器。

为此,我LAMP使用以下内容创建了一个容器docker-compose.yml

version: "3"

services:
  web: 
    image: webdevops/php-apache:alpine-php7
    ports:
      - "4500:80"
    volumes: 
      - ./www:/app
      - ./uploads.ini:/opt/docker/etc/php/php.ini

  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
      - "3306:3306"

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
      - "8088:80"
Run Code Online (Sandbox Code Playgroud)

如您所见,我已Apache使用该webdevops图像将其安装为服务,这将返回以下内容:

在此处输入图片说明

然后,我创建了一个包含Wordpress实例的新容器:

version: '3'

    services:
      wordpress:
       depends_on:
         - db
       image: wordpress:latest
       volumes:
         - ./wp/wp-content:/var/www/html/wp-content
       ports:
         - "8000:80"
       restart: always
       environment:
         WORDPRESS_DB_HOST: lamp_db_1:3306
         WORDPRESS_DB_USER: root
         WORDPRESS_DB_PASSWORD: …
Run Code Online (Sandbox Code Playgroud)

php apache wordpress docker

5
推荐指数
1
解决办法
179
查看次数

无法分配请求的地址(使用 Docker 时)

我正在使用这个库,当我在本地运行我的应用程序时一切正常。我在 NetworkHelper 类中实现了 TorSharp:

using Knapcode.TorSharp;
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;

namespace SWP.Helpers
{
    public class NetworkHelper
    {
        private int _maxRequests = 100;

        private int _failedAttempts = 10;

        private HttpClient _httpClient = null;

        private TorSharpProxy _proxy = null;

        public async Task<string> GetHtmlAsync(Uri url)
        {
            try
            {
                if (_httpClient == null)
                {
                    var settings = new TorSharpSettings
                    {
                        ZippedToolsDirectory = Path.Combine(Path.GetTempPath(), "TorZipped"),
                        ExtractedToolsDirectory = Path.Combine(Path.GetTempPath(), "TorExtracted"),
                        PrivoxySettings =
                        {
                            Port = 1337,

                        },
                        TorSettings =
                        { …
Run Code Online (Sandbox Code Playgroud)

.net c# docker .net-core

5
推荐指数
1
解决办法
746
查看次数