无错源码具有高成交性。
如果你也有源码想变卖获取收益,可以提交到无错源码,并设定好价格,一旦用户付款,款项的80%将会返还给你。
所有的源码请严格测试,务必保证无错可运行。
无错源码具有高成交性。
如果你也有源码想变卖获取收益,可以提交到无错源码,并设定好价格,一旦用户付款,款项的80%将会返还给你。
所有的源码请严格测试,务必保证无错可运行。
使用IIS套上cloudflare后,很多人不知道禁止非cloudflare ip访问,今天给个一键代码,在ps里边执行即可。
# Cloudflare IP 地址列表
$cloudflareIPs = @(
"173.245.48.0/20",
"103.21.244.0/22",
"103.22.200.0/22",
"103.31.4.0/22",
"141.101.64.0/18",
"108.162.192.0/18",
"190.93.240.0/20",
"188.114.96.0/20",
"197.234.240.0/22",
"198.41.128.0/17",
"162.158.0.0/15",
"104.16.0.0/13",
"104.24.0.0/14",
"172.64.0.0/13",
"131.0.72.0/22"
)
# 获取所有 IIS 网站的配置
$sites = Get-Website
# 循环遍历所有 IIS 网站并添加 Cloudflare IP 地址到允许列表
foreach ($site in $sites) {
$siteName = $site.Name
$siteConfig = Get-WebConfiguration -PSPath "IIS:\Sites\$siteName"
foreach ($ipRange in $cloudflareIPs) {
$ruleName = "AllowCloudflareIP_$([System.Guid]::NewGuid())"
$addRuleScript = @"
ipconfig /flushdns
New-WebConfigurationProperty -PSPath 'IIS:\Sites\$siteName' -Filter "system.webServer/security/ipSecurity" -Name "." -Value @{
"ipAddress" = "$ipRange";
"subnetMask" = "255.255.255.255";
"allowed" = $true;
"domainName" = '';
"byPass" = $false;
"matchOnly" = $true;
"negate" = $false;
"ruleName" = "$ruleName";
"enableReverseDns" = $false;
}
"@
Invoke-Expression $addRuleScript
}
# 应用更改
$siteConfig | Set-WebConfiguration -Verbose
}
任何人都可以使用其实时前端编辑器来构建令人惊叹的网站,无需任何编码知识。插件还提供一些预制的精美模板和块,只需单击几下就可以从Elementor库中导入它们。
它与诸如MailChimp,ConvertKit,Zapier,GetResponse等流行的营销工具的集成使您的营销更加容易。
总体而言,Elementor Pro 是WordPress最先进,功能最强大的页面生成器,活跃安装量超过500万。
越来越的开发者或网页设计者使用 Elementor Pro。
最近发现博客突然不更新了,有点诧异,难道一直用的采集器接口有问题了。其实自动更新到WordPress 6.3已经有一段时间了,今天才有时间来看下是什么原因。
直接接口测试,提示发布成功。。。。。 但是后台看不到,无语子。
打开代码调试下看看,发现了一个Fatal Error,有个php8开始弃用的函数
get_magic_quotes_gpc
直接把这个删除,自己采集其实判断这个没有太大用处,是防注入的。
再跑下,还是不行,继续调试代码。
居然看到一段代码是有Bug的,不知道是哪个新手实习生写的代码了。
找到错误修改起来自然就简单了。
代码放到附件了,有需要的下载吧。
小说站的rewrite经常会遇到这样的一个问题,实际保存路径是
/file/article/html/1/1245/32343.html
这个时候想要rewrite成
/book/1245/32343.html
这样的路径时,在nginx里边不会实现,只能通过php来实现,但使用php实现会大量耗费服务器的资源。
这里教大家一个nginx规则来实现这样的伪静态
http {
# ... 其他 http 配置 ...
map $1 $subaid {
~^(\d+)\d{3}$ $1;
default 0;
}
server {
listen 80;
server_name yourdomain.com;
# ... 其他配置 ...
location /cover/ {
if ($request_uri ~* ^/cover/(\d+)\.jpg$) {
rewrite ^/cover/(\d+)\.jpg$ /files/article/image/$subaid/$1/$1s.jpg last;
}
}
# ... 其他配置 ...
}
# ... 其他 http 配置 ...
}
我这里使用的是Cover封面来做的示范,主要就是添加一个map做对应关系。相信通过这个示范你也学废了吧。
网络测试类脚本
=================
三网测速
—————–
bash <(curl -Lso- https://www.infski.com/files/superspeed.sh)
用途:三网多线程测速
Hyperspeed
—————–
bash <(curl -Lso- https://bench.im/hyperspeed)
用途:测试三网单线程测速,比方说油管速度就是单线程
硬件测试类脚本
=================
geekbench和yabs
—————–
geekbench5
curl -sL yabs.sh|bash -s -- -if -fdi5
yabs
curl -sL yabs.sh | bash
用途:geekbench5只测试小鸡的cpu的geekbench5的跑分,去掉了网络和硬盘测试
现在的yabs默认是6,yabs同时还提供小鸡的硬盘和网络测试,具体详细的参数看作者github的readme
bench.sh
—————–
wget -qO- bench.sh | bash
用途:秋水大佬的脚本,可以显示linux小鸡的详细信息,以及硬盘和网络的测试
如果要测试小鸡国外的速度的话,用这个
硬盘测试
—————–
dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
用途:用dd命令测试小鸡的硬盘性能
超售检测
—————–
curl https://raw.githubusercontent.com/uselibrary/memoryCheck/main/memoryCheck.sh | bash
wget --no-check-certificate -O memoryCheck.sh https://raw.githubusercontent.com/uselibrary/memoryCheck/main/memoryCheck.sh && chmod +x memoryCheck.sh && bash memoryCheck.sh
用途:检测小鸡是否超售,不过其实自己买小鸡那价格超没超售,都应该心知肚明了
有钱还是上杜甫
ip检测
=================
流媒体检测
—————–
bash <(curl -L -s https://raw.githubusercontent.com/lmc999/RegionRestrictionCheck/main/check.sh)
用途:测试小鸡ip的流媒体以及chatgpt解锁,同时这个脚本在安卓的temux,ios上ish,mac的终端上也是能用的,可以用来判断机场的节点是否支持解锁
windows的话可以用linux子系统
四网回程测试
—————–
wget -O jcnf.sh https://raw.githubusercontent.com/Netflixxp/jcnfbesttrace/main/jcnf.sh && chmod +x jcnf.sh && clear &&./jcnf.sh
用途:测试小鸡的四网回程路由,三大运营商和教育网的路由
综合脚本
=================
融合怪
bash <(wget -qO- --no-check-certificate https://gitlab.com/spiritysdx/za/-/raw/main/ecs.sh)
lemonbench
wget -qO- https://raw.githubusercontent.com/LemonBench/LemonBench/main/LemonBench.sh | bash -s -- --fast
用途:上面两个都是综合测试小鸡的各项性能,怎么用看作者的readme
魔法类
=================
xui
—————–
bash <(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/master/install.sh)
v2ray-agent
—————–
wget -P /root -N --no-check-certificate "https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh" && chmod 700 /root/install.sh && /root/install.sh
warp
—————–
wgcf
wget -N https://raw.githubusercontent.com/fscarmen/warp/main/menu.sh && bash menu.sh [option] [lisence]
Warp-go
wget -N https://raw.githubusercontent.com/fscarmen/warp/main/warp-go.sh && bash warp-go.sh
DUX主题支持专题功能、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、自动缩略图等等。
DUX主题8.0来了,有史以来最强大的主题更新。
DUX 8.0 带来了很多全新的展示和功能,这得益于我们对DUX主题做了一次大手术。42+的主题更新,毫不客气的说,一个全新等于10项新增。作为themebetter的C位一哥,DUX主题一直是我们重点关注和更新的对象,8.0是一个新的开始,未来更会有更多可能。
全站UI配色几乎重做,在保留DUX的基调之上强大的优化了前端加载效率,去除了原有的 Bootstrap框架、Fontawesome字体库、删除了十分鸡肋的JS文件托管、压缩了前端输出的CSS和JS代码,在极大程度上让主题更加快速的呈现在用户面前。与之前版本的DUX主题对比,前端加载速度提升至少2倍有余。
一键换色功能重写,全新提供的14种优质配色可选,更高质量更高展现的配色方案,让网站更高格调。
夜间模式的呼声很高,但此前的DUX主题架构并不能很好的提供这一功能,如今UI重做,CSS代码几乎重写,也就有了即点即换的日/夜间模式,毫无卡顿,瞬间切换。目前夜间模式时间为晚7点至早7点,后面更新会提供让站长自定义夜间时间。
Python程序编译后是pyc文件,使用本文件放于任意目录下,修改directory值,然后使用python运行即可批量破解反编译pyc文件 。
import uncompyle6
import os
def decompile_pyc_files(directory):
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.pyc'):
pyc_file = os.path.join(root, file)
py_file = os.path.splitext(pyc_file)[0] + '.py' # 使用同名的.py文件名
# 反编译.pyc文件为.py文件
with open(py_file, 'w', encoding='utf-8') as f: # 指定编码方式为utf-8
uncompyle6.decompile_file(pyc_file, f)
print(f"Decompiled: {pyc_file} -> {py_file}")
# 指定包含.pyc文件的目录
directory = r"D:\source\"
# 执行批量反编译
decompile_pyc_files(directory)
__init__.py
新建文件 ,内容如下
import os
from flask import Flask
from config import Config
from datetime import timedelta
from app.logs import log
from app.helper import filehelper, taskhelper
from app.helper.schehelper import scheduler
def app():
try:
path = os.getcwd()
tpath = '{0}//templates'.format(path.replace("\\", "//"))
spath = '{0}//static'.format(path.replace("\\", "//"))
appflask = Flask(__name__) # , template_folder=tpath, static_folder=spath
appflask.config.from_object(Config())
# 自动重载模板文件
appflask.jinja_env.auto_reload = True
appflask.config['TEMPLATES_AUTO_RELOAD'] = True
# 设置静态文件缓存过期时间
appflask.config['SEND_FILE_MAX_AGE_DEFAULT'] = timedelta(seconds=1)
appflask.config['JSON_AS_ASCII'] = False # 这个配置可以确保http请求返回的json数据中正常显示中文
读取基础配置()
#scheduler.init_app(appflask)
scheduler.start()
return appflask
except Exception as e:
msg = 'app-{0},文件地址:{1},错误行号:{2}'.format(e, e.__traceback__.tb_frame.f_globals["__file__"],
e.__traceback__.tb_lineno)
log.错误日志(msg)
def 读取基础配置():
try:
系统设置 = filehelper.读INI("系统设置.ini", "系统设置", "系统设置")
Config.系统设置 = eval(系统设置)
大类设置 = filehelper.读INI("大类设置.ini", "大类设置", "大类设置")
Config.一级分类 = 大类设置.strip('\n').split('\n')
小类设置 = filehelper.读INI("小类设置.ini", "小类设置", "小类设置")
Config.二级分类 = 小类设置.strip('\n').split('\n')
频道设置 = filehelper.读INI("频道设置.ini", "频道设置", "频道设置")
Config.频道 = 频道设置.strip('\n').split('\n')
连载设置 = filehelper.读INI("连载设置.ini", "连载设置", "连载设置")
Config.连载 = 连载设置.strip('\n').split('\n')
标识设置 = filehelper.读INI("标识设置.ini", "标识设置", "标识设置")
Config.标识 = 标识设置.strip('\n').split('\n')
自定内容 = filehelper.读INI("自定内容.ini", "自定内容", "自定内容")
Config.自定内容 = 自定内容
UA设置 = filehelper.读INI("UA设置.ini", "UA设置", "UA设置")
Config.UA = UA设置.split('\n')
代理设置 = filehelper.读INI("代理设置.ini", "代理设置", "代理设置")
Config.代理 = 代理设置.strip('\n').split('\n')
邮件设置 = filehelper.读INI("邮件设置.ini", "邮件设置", "邮件设置")
Config.邮件 = eval(邮件设置)
规则列表 = filehelper.读取任务列表()
for item in 规则列表:
if item.startswith('任务'):
任务ID = item.replace('任务', '').replace('.ini', '')
任务字符串 = filehelper.读INI('任务{0}.ini'.format(任务ID), 任务ID, 'taskinfo')
任务信息 = eval(任务字符串)
taskhelper.添加任务(任务信息)
except Exception as e:
msg = '读取基础配置-{0},文件地址:{1},错误行号:{2}'.format(e, e.__traceback__.tb_frame.f_globals["__file__"],
e.__traceback__.tb_lineno)
log.错误日志(msg)
新建 task.py文件,内容如下
# -*- coding: UTF-8 -*-
import json
import base64
import datetime
from config import Config
from app.helper import filehelper, commonhelper, taskhelper
from flask import request, render_template
def 查询任务列表():
try:
规则列表 = filehelper.读取任务列表()
返回值 = []
for item in 规则列表:
if item.startswith('任务'):
任务ID = item.replace('任务', '').replace('.ini', '')
规则ID = filehelper.读INI('任务{0}.ini'.format(任务ID), 任务ID, 'taskname')
任务名称 = filehelper.读INI('任务{0}.ini'.format(任务ID), 任务ID, 'taskname')
任务类型 = filehelper.读INI('任务{0}.ini'.format(任务ID), 任务ID, 'taskType')
任务状态 = filehelper.读INI('任务{0}.ini'.format(任务ID), 任务ID, 'taskstatus')
任务时间间隔 = filehelper.读INI('任务{0}.ini'.format(任务ID), 任务ID, 'tasktime')
采集内容 = commonhelper.获取当前采集信息(任务ID)
最后运行时间 = filehelper.读INI('任务{0}.ini'.format(任务ID), 任务ID, 'gxsj')
返回值.append({
"任务ID": 任务ID,
"规则ID": 规则ID,
"任务名称": 任务名称,
"任务类型": 任务类型,
"任务状态": 任务状态,
"任务时间间隔": 任务时间间隔,
"采集内容": 采集内容,
"最后运行时间": 最后运行时间
})
return '{"code":0,"msg":"", "count":' + str(len(返回值)) + ', "data": ' + json.dumps(返回值) + '}'
except Exception as e:
return '{"code":0,"msg":"' + e + '","count":0,"data":[]}'
def 添加任务():
try:
taskid = str(request.form['taskid'])
ruleid = str(request.form['ruleid'])
taskname = str(request.form['taskname'])
tasktime = str(request.form['tasktime'])
taksmode = str(request.form['taksmode'])
taskType = str(request.form['taskType'])
bookid = str(request.form['bookid'])
startid = str(request.form['startid'])
endid = str(request.form['endid'])
startpage = str(request.form['startpage'])
endpage = str(request.form['endpage'])
pagelist = str(request.form['pagelist'])
isimg = str(request.form['isimg'])
isinfo = str(request.form['isinfo'])
ismark = str(request.form['ismark'])
sizerestoration = str(request.form['sizerestoration'])
colletime = str(request.form['colletime'])
retrynum = str(request.form['retrynum'])
retrytime = str(request.form['retrytime'])
useragent = str(request.form['useragent'])
contrastmethod = str(request.form['contrastmethod'])
an = str(request.form['an'])
cn = str(request.form['cn'])
yj = str(request.form['yj'])
dl = str(request.form['dl'])
dlinfo = str(request.form['dlinfo'])
cookies = str(request.form['cookies'])
bcjbt = str(request.form['bcjbt'])
minichapter = str(request.form['minichapter'])
bookurl = str(request.form['bookurl'])
booklisturl = str(request.form['booklisturl'])
maxchapter = str(request.form['maxchapter'])
iscf5 = str(request.form['iscf5'])
是否添加 = False
if (taskid == None) | (taskid == 'None') | (taskid == ''):
taskid = datetime.datetime.now().strftime("%Y%m%d%H%m%f")
是否添加 = True
任务信息 = {
"taskid": taskid,
"ruleid": ruleid,
"taskname": taskname,
"tasktime": tasktime,
"taksmode": taksmode,
"taskType": taskType,
"bookid": bookid,
"bookurl": bookurl,
"startid": startid,
"endid": endid,
"booklisturl": booklisturl,
"startpage": startpage,
"endpage": endpage,
"pagelist": pagelist,
"isimg": isimg,
"isinfo": isinfo,
"ismark": ismark,
"sizerestoration": sizerestoration,
"colletime": colletime,
"retrynum": retrynum,
"retrytime": retrytime,
"useragent": useragent,
"contrastmethod": contrastmethod,
"an": an,
"cn": cn,
"yj": yj,
"dl": dl,
"dlinfo": dlinfo,
"cookies": cookies,
"bcjbt": bcjbt,
"minichapter": minichapter,
"maxchapter": maxchapter,
"iscf5":iscf5
}
if filehelper.写入任务INI(taskid, taskid, 任务信息):
if 是否添加:
taskhelper.添加任务(任务信息)
else:
taskhelper.修改任务(任务信息)
taskhelper.获取任务信息(taskid)
return '保存成功!'
else:
return '保存失败!'
except Exception as e:
msg = '{0},文件地址:{1},错误行号:{2}'.format(e, e.__traceback__.tb_frame.f_globals["__file__"],
e.__traceback__.tb_lineno)
return msg
def 查询任务信息():
try:
类型 = str(request.args.get('type'))
任务信息 = {}
规则信息 = []
if 类型 == 'add':
pass
elif 类型 == 'up':
任务ID = str(request.args.get('taskid'))
任务字符串 = filehelper.读INI('任务{0}.ini'.format(任务ID), 任务ID, 'taskinfo')
任务信息 = eval(任务字符串)
规则列表 = filehelper.读取规则列表()
for item in 规则列表:
规则ID = filehelper.读INI('规则.ini', item, 'ruleid')
规则名称 = filehelper.读INI('规则.ini', item, 'rulename')
规则信息.append({"v": 规则ID, "t": 规则名称})
return render_template("task.html", info=任务信息, 规则=规则信息, UserAgent=Config.UA)
except Exception as e:
msg = '{0},文件地址:{1},错误行号:{2}'.format(e, e.__traceback__.tb_frame.f_globals["__file__"],
e.__traceback__.tb_lineno)
return render_template("msg.html", info=msg)
def 启动任务():
try:
任务ID = str(request.args.get('taskid'))
if filehelper.修改INI('任务{0}.ini'.format(任务ID), 任务ID, "taskstatus", "开启"):
return '启动成功!'
else:
return '启动失败!'
except Exception as e:
msg = '{0},文件地址:{1},错误行号:{2}'.format(e, e.__traceback__.tb_frame.f_globals["__file__"],
e.__traceback__.tb_lineno)
return msg
def 暂停任务():
try:
任务ID = str(request.args.get('taskid'))
if filehelper.修改INI('任务{0}.ini'.format(任务ID), 任务ID, "taskstatus", "暂停"):
return '暂停成功!'
else:
return '暂停失败!'
except Exception as e:
msg = '{0},文件地址:{1},错误行号:{2}'.format(e, e.__traceback__.tb_frame.f_globals["__file__"],
e.__traceback__.tb_lineno)
return msg
def 删除任务信息():
try:
任务ID = str(request.args.get('taskid'))
if filehelper.删除任务INI(任务ID):
taskhelper.删除任务(任务ID)
return '删除成功!'
else:
return '删除失败!'
except Exception as e:
msg = '{0},文件地址:{1},错误行号:{2}'.format(e, e.__traceback__.tb_frame.f_globals["__file__"],
e.__traceback__.tb_lineno)
return msg
def 批量删除任务信息():
try:
任务ID = str(request.form['taskId'])
任务列表 = 任务ID.split('|')
成功数量 = 0
失败数量 = 0
for item in 任务列表:
if filehelper.删除任务INI(任务ID):
taskhelper.删除任务(任务ID)
成功数量 = 成功数量 + 1
else:
失败数量 = 失败数量 + 1
return '成功删除{0}条,失败{1}条!'.format(成功数量, 失败数量)
except Exception as e:
msg = '{0},文件地址:{1},错误行号:{2}'.format(e, e.__traceback__.tb_frame.f_globals["__file__"],
e.__traceback__.tb_lineno)
return msg
task.py文件放入app/view文件夹
原来对应的pyc文件可以删除。
替换完成后重启应用服务器即可。
基于https://github.com/flucont/btcloud/releases/tag/1.9
只有运行环境本地化,收费插件本地化自己弄,而且只有编译安装本地化,极速安装本地化也没弄,自己去public/install/1和public/install/4弄
public/install/0和public/install/4 已经好了
收费插件怎么下载直接看https://github.com/flucont/btcloud/releases/tag/1.9,只能提示到这里了,然后自己本地化
,解压到public ,全部替换public文件下的文件,再替换966333.xyz为你自己的域名,包括压缩包panel6.zip。
Centos安装脚本:yum install -y wget && wget -O install.sh https://域名/install/install_6.0.sh && sh install.sh
Ubuntu/Deepin安装脚本 wget -O install.sh https://域名/install/install-ubuntu_6.0.sh && sudo bash install.sh
万能安装脚本 if [ -f /usr/bin/curl ];then curl -sSO https://域名/install/install_panel.sh;else wget -O install_panel.sh https://域名/install/install_panel.sh;fi;bash install_panel.sh