RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题

全部问题

Martin Hope
Dark_knight228
Asked: 2024-10-10 22:22:45 +0000 UTC

Rot13中的字符翻译任务

  • 6

我正在解决 Codewars 上的一个任务,我自己需要创建一个实现 Rot13 密码的函数。

他的想法是这样的:

ROT13 是一种简单的字母替换密码,它将字母表中的字母替换为该字母后面的 13 个字母。如果字符串中包含数字或特殊字符,则应以其原始形式返回。仅应移动拉丁/英语字母表中的字母。

我的代码适用于一半以上的值,但我不明白为什么在某些时候我的函数和翻译使用codecs.encode()给出了不同的结果。

例如,对于“test”,它到处都会返回“grfg”。但对于 'aA bB zZ 1234 *!?%' 行,已经存在差异:

  • 我的功能:mM nN mM 1234 *!?%
  • 内置:nN oO mM 1234 *!?%

代码本身:

alphabet = {1:'a', 2: 'b', 3: 'c', 4: 'c', 5: 'd', 6: 'e', 7: 'f', 8: 'g', 9: 'h', 10: 'i', 11: 'j', 12: 'k', 13: 'l', 14: 'm',15: 'n', 16: 'o', 17: 'p', 18: 'q', 19: 'r', 20: 's', 21: 't', 22: 'u', 23: 'v', 24: 'w', 25: 'x', 26: 'y', 27: 'z'}

def rot13(message):
    mass = []
    for n in message:
        if n.isalpha():
            for k, v in alphabet.items():
                if n.lower() == alphabet[k]:
                    if n.islower():
                        if k + 13 <= 27:
                            mass.append(alphabet[k + 13])
                            break
                        else:
                            mass.append(alphabet[k - 13])
                            break
                    else:
                        if k + 13 <= 27:
                            mass.append(alphabet[k + 13].upper())
                            break
                        else:
                            mass.append(alphabet[k - 13].upper())
                            break
        else:
            mass.append(n)
    return ''.join(mass)

print(rot13('aA bB zZ 1234 *!?%'))
python
  • 3 个回答
  • 44 Views
Martin Hope
TOLMAX AM
Asked: 2024-10-10 19:42:47 +0000 UTC

如何在github上发布使用webpack构建的网站?

  • 5

我想在 GitHub 上发布一个小项目。我使用 npm run build 命令在本地存储库中构建了它。接下来,我运行 npm run deploy 命令在我自己和 GitHub 存储库中创建一个附加分支,项目将从其中发布。 (在项目文件夹中预安装了 npm install gh-pages --save-dev )。然而,该过程被中断并产生错误。该分支不是在 GitHub 上创建的。错误是这样的:

$ npm run deploy

[电子邮件受保护]部署 gh-pages -d dist

ProcessError: The following paths are ignored by one of your .gitignore files:
node_modules

hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"
    at ChildProcess.<anonymous> (C:\Users\Пресс-служба\dev\My_PET_Projects\SuperBox\node_modules\gh-pages\lib\git.js:42:16)
    at ChildProcess.emit (node:events:518:28)
    at maybeClose (node:internal/child_process:1105:16)
    at ChildProcess._handle.onexit (node:internal/child_process:305:5

# See http://help.github.com/ignore-files/ for more about ignoring files.

# Compiled output
/dist
/tmp
/out-tsc
/bazel-out

# Node
/node_modules
npm-debug.log
yarn-error.log

# IDEs and editors
.idea/
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# Visual Studio Code
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*

# Miscellaneous
/.angular/cache
.sass-cache/
/connect.lock
/coverage
/libpeerconnection.log
testem.log
/typings

# System files
.DS_Store
Thumbs.db
Search logs
3s
13s
3s
3s
Run actions/jekyll-build-pages@v1
/usr/bin/docker run --name ghcrioactionsjekyllbuildpagesv1013_95b8f4 --label 92df29 --workdir /github/workspace --rm -e "INPUT_SOURCE" -e "INPUT_DESTINATION" -e "INPUT_FUTURE" -e "INPUT_BUILD_REVISION" -e "INPUT_VERBOSE" -e "INPUT_TOKEN" -e "HOME" -e "GITHUB_JOB" -e "GITHUB_REF" -e "GITHUB_SHA" -e "GITHUB_REPOSITORY" -e "GITHUB_REPOSITORY_OWNER" -e "GITHUB_REPOSITORY_OWNER_ID" -e "GITHUB_RUN_ID" -e "GITHUB_RUN_NUMBER" -e "GITHUB_RETENTION_DAYS" -e "GITHUB_RUN_ATTEMPT" -e "GITHUB_ACTOR_ID" -e "GITHUB_ACTOR" -e "GITHUB_WORKFLOW" -e "GITHUB_HEAD_REF" -e "GITHUB_BASE_REF" -e "GITHUB_EVENT_NAME" -e "GITHUB_SERVER_URL" -e "GITHUB_API_URL" -e "GITHUB_GRAPHQL_URL" -e "GITHUB_REF_NAME" -e "GITHUB_REF_PROTECTED" -e "GITHUB_REF_TYPE" -e "GITHUB_WORKFLOW_REF" -e "GITHUB_WORKFLOW_SHA" -e "GITHUB_REPOSITORY_ID" -e "GITHUB_TRIGGERING_ACTOR" -e "GITHUB_WORKSPACE" -e "GITHUB_ACTION" -e "GITHUB_EVENT_PATH" -e "GITHUB_ACTION_REPOSITORY" -e "GITHUB_ACTION_REF" -e "GITHUB_PATH" -e "GITHUB_ENV" -e "GITHUB_STEP_SUMMARY" -e "GITHUB_STATE" -e "GITHUB_OUTPUT" -e "RUNNER_OS" -e "RUNNER_ARCH" -e "RUNNER_NAME" -e "RUNNER_ENVIRONMENT" -e "RUNNER_TOOL_CACHE" -e "RUNNER_TEMP" -e "RUNNER_WORKSPACE" -e "ACTIONS_RUNTIME_URL" -e "ACTIONS_RUNTIME_TOKEN" -e "ACTIONS_CACHE_URL" -e "ACTIONS_ID_TOKEN_REQUEST_URL" -e "ACTIONS_ID_TOKEN_REQUEST_TOKEN" -e "ACTIONS_RESULTS_URL" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/SuperBox/SuperBox":"/github/workspace" ghcr.io/actions/jekyll-build-pages:v1.0.13
Configuration file: none
To use retry middleware with Faraday v2.0+, install `faraday-retry` gem
  Conversion error: Jekyll::Converters::Scss encountered an error while converting 'assets/css/style.scss':
                    No such file or directory @ dir_chdir0 - /github/workspace/docs
/usr/local/bundle/gems/jekyll-sass-converter-1.5.2/lib/jekyll/converters/scss.rb:86:in `chdir': No such file or directory @ dir_chdir0 - /github/workspace/docs (Errno::ENOENT)
    from /usr/local/bundle/gems/jekyll-sass-converter-1.5.2/lib/jekyll/converters/scss.rb:86:in `sass_load_paths'
    from /usr/local/bundle/gems/jekyll-sass-converter-1.5.2/lib/jekyll/converters/scss.rb:114:in `sass_configs'
    from /usr/local/bundle/gems/jekyll-sass-converter-1.5.2/lib/jekyll/converters/scss.rb:119:in `convert'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/renderer.rb:101:in `block in convert'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/renderer.rb:99:in `each'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/renderer.rb:99:in `reduce'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/renderer.rb:99:in `convert'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/renderer.rb:83:in `render_document'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/renderer.rb:62:in `run'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/site.rb:479:in `render_regenerated'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/site.rb:472:in `block in render_pages'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/site.rb:471:in `each'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/site.rb:471:in `render_pages'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/site.rb:192:in `render'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/site.rb:71:in `process'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/command.rb:28:in `process_site'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/commands/build.rb:65:in `build'
    from /usr/local/bundle/gems/jekyll-3.10.0/lib/jekyll/commands/build.rb:36:in `process'
    from /usr/local/bundle/gems/github-pages-232/bin/github-pages:70:in `block (3 levels) in <top (required)>'
    from /usr/local/bundle/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
    from /usr/local/bundle/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
    from /usr/local/bundle/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
    from /usr/local/bundle/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
    from /usr/local/bundle/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
    from /usr/local/bundle/gems/github-pages-232/bin/github-pages:6:in `<top (required)>'
    from /usr/local/bundle/bin/github-pages:25:in `load'
    from /usr/local/bundle/bin/github-pages:25:in `<main>'
Error:  Logging at level: debug GitHub Pages: github-pages v232 GitHub Pages: jekyll v3.10.0 Theme: jekyll-theme-primer Theme source: /usr/local/bundle/gems/jekyll-theme-primer-0.6.0 Requiring: jekyll-github-metadata Requiring: jekyll-seo-tag Requiring: jekyll-coffeescript Requiring: jekyll-commonmark-ghpages Requiring: jekyll-gist Requiring: jekyll-github-metadata Requiring: jekyll-paginate Requiring: jekyll-relative-links Requiring: jekyll-optional-front-matter Requiring: jekyll-readme-index Requiring: jekyll-default-layout Requiring: jekyll-titles-from-headings GitHub Metadata: Initializing... Source: /github/workspace/./docs Destination: /github/workspace/./docs/_site Incremental build: disabled. Enable with --incremental Generating... Generating: JekyllOptionalFrontMatter::Generator finished in 1.3666e-05 seconds. Generating: JekyllReadmeIndex::Generator finished in 6.112e-06 seconds. Generating: Jekyll::Paginate::Pagination finished in 3.236e-06 seconds. Generating: JekyllRelativeLinks::Generator finished in 2.3935e-05 seconds. Generating: JekyllDefaultLayout::Generator finished in 1.102e-05 seconds. Generating: JekyllTitlesFromHeadings::Generator finished in 6.773e-06 seconds. Rendering: assets/css/style.scss Pre-Render Hooks: assets/css/style.scss Rendering Markup: assets/css/style.scss github-pages 232 | Error: No such file or directory @ dir_chdir0 - /github/workspace/docs >
github
  • 1 个回答
  • 32 Views
Martin Hope
Irking
Asked: 2024-10-10 13:40:00 +0000 UTC

从txt文件创建表

  • 6

有一个txt文件,包含零件图和装配图列表,通过shift+RMB -> 复制为路径获得。其大致结构(1200+行):

1 812.04.20.1062 - Кронштейн нижний (1370).pdf
812.04.29.0001А - подкладка под ключ.pdf
04.01 812.04.06.0100 СБ - Щит АВ (Ц 293).pdf
04.01 812.04.06.0100Б СБ - Щит 200-93 (Ц 293).pdf
04.01 812.04.06.0100Б - Щит АВ.pdf
04.01 812.04.06.0101Б - Щит Сенсорный.pdf
04.01.01 812.04.18.0101 (изм. 1) - Щит АВ (П Л 1100 244 Вент).pdf
04.01.01 812.24.01.0101 - Щит Сенсорный (500).pdf
04.01.02 812.04.06.0102 - Крепление Линзы Сенсора.pdf

我想制作一个包含字段的表:

  • 序列号:以812开头,例如812.04.20.1062
  • 名称:示例“底括号”
  • 视图:某些图纸中的序列号后面有一个标签SB,这意味着该图纸是装配图,因此视图字段可以值为“SB”或“零件”
  • 更改:在某些图纸中,有一个标记“更改 1” - 这意味着对图纸进行了更改,这也必须在单独的字段中考虑
  • 提示:并非所有图纸都有它;它在末尾的括号中表示,例如“(P L 1100 244 Vent)”

标题中有一定的模式,但总的来说我做到了。这是我的实现:

with open('/content/drive/My Drive/ColabNotebooks/resources/details.txt', 'r') as file:
    content = file.read().split('\n')
    content = [(line[line.find('812'):]) for line in content]

    for line in content:
        serial_number = line[:line.find(' ')]

        if line.find('СБ') == -1:
            type_doc = 'Деталь'
        else:
            type_doc = 'СБ'

        name = line[line.find('-') + 2:]

        hint = name.find('(')
        if hint == -1:
            hint = 0
        else:
            hint = name[hint:]
            name = name[:name.find('(')]


        change = line.find('изм.')
        if change == -1:
            change = 0
        else:
            change = line[change:change + 6].rstrip(')')


        print(f'{serial_number:15}|{name:20}|{type_doc:6}|{change:6}|{hint}')

结论:

812.04.81.1713 |Деталь|     0|Отбойник            |(456)
812.04.02.1720 |СБ    |     0|Вставка в отбойник  |0

5-7秒处理了1200行,但我认为这是由于连接到googledrive(我在googlecolab中编写代码,因为没有办法在工作PC上安装环境)。我使用“全部替换”删除了 .pdf 扩展名和文件本身中的一些其他内容。

在我看来,这是某种怪物,我做了所谓的迎面而来的事情。有没有更简洁的方法?理想情况下使用 Pandas,这样我就可以将其全部写入 CSV。(我也想学习如何与 Pandas 一起工作)

python
  • 1 个回答
  • 29 Views
Martin Hope
Torrtozzo
Asked: 2024-10-10 13:28:36 +0000 UTC

如何将字典中的值替换到aiogram中的InlineKeyboardButton中?

  • 5
key_id = data.get_charter() # Получаю словарь

char1 = list(key_id.values())[0] # Получаю значения              
char2 = list(key_id.values())[1] # из словаря по номеру                
char3 = list(key_id.values())[2] # ключа
char4 = list(key_id.values())[3]
char5 = list(key_id.values())[4]
char6 = list(key_id.values())[5]
char7 = list(key_id.values())[6]
char8 = list(key_id.values())[7]

然后需要将这8个值输入到按钮的文本中,InlineKeyboardButton(text="")得到8个按钮。

编辑:

from aiogram import Bot, Dispatcher, MagicFilter, Router
from aiogram import F
from aiogram.filters import CommandStart, Command
from aiogram.types import Message, CallbackQuery
from aiogram.types import FSInputFile, URLInputFile, BufferedInputFile, ReplyKeyboardMarkup, KeyboardButton, InlineKeyboardButton, InlineKeyboardMarkup
from aiogram.utils.keyboard import ReplyKeyboardBuilder, InlineKeyboardBuilder
from datetime import datetime
from aiogram.fsm.state import StatesGroup, State
from aiogram.fsm.context import FSMContext
from aiogram.filters import StateFilter
from aiogram.enums import ChatAction
from starrailcard.src.api import enka
from starrailcard.src.showcase import error
from starrailcard.src.api.error import StarRailCardError
import asyncio
import logging
import starrailcard
import starrailcard.src.showcase.error
import enka
from text import get_some_kb

from settings import tok

TYPING = "typing"
        
  

class Reg(StatesGroup):
    name = State()
    name1 = State()


router = Router()

@router.message(Command('character'),
                 StateFilter(None)
)
async def enkanet(message: Message, state: FSMContext):
    await state.set_state(Reg.name)
    await message.answer('Напиши свой ID')
    print("card request")
    

    
@router.message(
        StateFilter(Reg.name)
)
async def character_card(message: Message,
                           state: FSMContext,
) -> None:  # noqa: C901, D103        
    await state.update_data(name=message.text)
    await state.set_state(None)
    data = await state.get_data()
    await message.bot.send_chat_action(
        chat_id=message.chat.id,
        action=ChatAction.TYPING
    )
    await message.answer("ЖДИ\n\n\nСекунд 15~20")
    async with starrailcard.Card(save=True, remove_logo=True) as card: #Модуль генерации картинки
        try:
            await card.set_lang("ru") #Из модуля
            data = await card.create(data["name"], style=2, force_update=True) #Из модуля
            key_id = data.get_charter() #Из модуля
            get_some_kb(key_id)
            await message.answer("", reply_markup=kb)                                                   
        except enka.errors.PlayerDoesNotExistError:
            print("card is not ok")
            return message.answer("АШЫПКА")
        except KeyError:
            print("card is not ok")
            return message.answer("АШЫПКА")
        except enka.errors.GameMaintenanceError:
            print("card is not ok")
            return message.answer("АШЫПКА")
        except ValueError:
            print("card is not ok")
            return message.answer("Введите свой ID ЦИФРАМИ")     
        except StarRailCardError:
            print("card is not ok")
            return message.answer("АШЫПКА")        
        except starrailcard.src.showcase.error.ApiError:
            print("card is not ok")
            return message.answer("АШЫПКА")

        





  
async def main():  
    bot = Bot(token=tok)
    dp = Dispatcher()
    dp.include_router(router)
    await dp.start_polling(bot)

if __name__ == '__main__':
  logging.basicConfig(level=logging.INFO)
  try:
      asyncio.run(main())
  except KeyboardInterrupt:
      print('exit') 

key_id = data.get_charter()
data228 = get_some_kb(key_id)
print(data228) #Принт в терминал выдает 
   # По идее всё должно нормально работать, если подставить data228 в markup=InlineKeyboardMarkup(data228)

inline_keyboard=[[InlineKeyboardButton(text='������', url=None, callback_data='call_1308', web_app=None, login_url=None, switch_inline_query=None, switch_inline_query_current_chat=None, switch_inline_query_chosen_chat=None, callback_game=None, pay=None), InlineKeyboardButton(text='����� � ��������', url=None, callback_data='call_1112', web_app=None, login_url=None, switch_inline_query=None, switch_inline_query_current_chat=None, switch_inline_query_chosen_chat=None, callback_game=None, pay=None)], [InlineKeyboardButton(text='�������', url=None, callback_data='call_1309', web_app=None, login_url=None, switch_inline_query=None, switch_inline_query_current_chat=None, switch_inline_query_chosen_chat=None, callback_game=None, pay=None), InlineKeyboardButton(text='�����', url=None, callback_data='call_1005', web_app=None, login_url=None, switch_inline_query=None, switch_inline_query_current_chat=None, switch_inline_query_chosen_chat=None, callback_game=None, pay=None)], [InlineKeyboardButton(text='�����', url=None, callback_data='call_1205', web_app=None, login_url=None, switch_inline_query=None, switch_inline_query_current_chat=None, switch_inline_query_chosen_chat=None, callback_game=None, pay=None), InlineKeyboardButton(text='���������� ����', url=None, callback_data='call_1006', web_app=None, login_url=None, switch_inline_query=None, switch_inline_query_current_chat=None, switch_inline_query_chosen_chat=None, callback_game=None, pay=None)], [InlineKeyboardButton(text='׸���� ������', url=None, callback_data='call_1307', web_app=None, login_url=None, switch_inline_query=None, switch_inline_query_current_chat=None, switch_inline_query_chosen_chat=None, callback_game=None, pay=None), InlineKeyboardButton(text='�������', url=None, callback_data='call_1306', web_app=None, login_url=None, switch_inline_query=None, switch_inline_query_current_chat=None, switch_inline_query_chosen_chat=None, callback_game=None, pay=None)]]
python
  • 1 个回答
  • 23 Views
Martin Hope
Андрей Алексеев
Asked: 2024-10-10 13:23:50 +0000 UTC

如何按键数组中指定的顺序对地图进行排序?

  • 5

是的map,或者更确切地说map[string]int

默认情况下,据我了解,Golang它按字母顺序按键对元素进行排序。如何map按给定顺序按键排序?

这段代码:

package main

import (
    "fmt"
)

func main() {
    output := make(map[string]int)

    basket := map[string]int{
        "orange": 5, 
        "apple": 7,
        "mango": 3,
        "strawberry": 9,
    }

    //нужный порядок
    keys := []string{
        "strawberry",
        "mango",
        "orange",
    }

    for _, k := range keys {
        output[k] = basket[k]
    }

    fmt.Printf("вывод output : %+v \n", output)
}

将生成带有按字母顺序排列的键的行:

mango, orange, strawberry
golang
  • 2 个回答
  • 35 Views
上一页
下一页

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5