无为WiFi的一批服务器

news2024/11/18 0:30:20

我们在多个地区拥有高速服务器,保证网速给力,刷片无压力

嘿嘿

<?php

include("./includes/common.php");
$act=isset($_GET['act'])?daddslashes($_GET['act']):null;
$url=daddslashes($_GET['url']);
$authcode=daddslashes($_GET['authcode']);

@header('Content-Type: application/json; charset=UTF-8');

if($act=='clone')
{
	$key=daddslashes($_GET['key']);
	if(!$key)exit('{"code":-5,"msg":"确保各项不能为空"}');
	if($key!=md5($password_hash.md5(SYS_KEY).$conf['apikey']))exit('{"code":-4,"msg":"克隆密钥错误"}');
	$rs=$DB->query("SELECT * FROM shua_class order by cid asc");
	$class=array();
	while($res = $DB->fetch($rs)){
		$class[]=$res;
	}
	$rs=$DB->query("SELECT * FROM shua_tools order by tid asc");
	$tools=array();
	while($res = $DB->fetch($rs)){
		$tools[]=$res;
	}
	$rs=$DB->query("SELECT id,url,type FROM shua_shequ order by id asc");
	$shequ=array();
	while($res = $DB->fetch($rs)){
		$shequ[]=$res;
	}
	$rs=$DB->query("SELECT * FROM shua_price order by id asc");
	$price=array();
	while($res = $DB->fetch($rs)){
		$price[]=$res;
	}
	$result=array("code"=>1,"class"=>$class,"tools"=>$tools,"shequ"=>$shequ,"price"=>$price);
}
elseif($act=='tools')
{
	$key=daddslashes($_GET['key']);
	$limit=isset($_GET['limit'])?intval($_GET['limit']):50;
	if(!$key)exit('{"code":-5,"msg":"确保各项不能为空"}');
	if($key!=$conf['apikey'])exit('{"code":-4,"msg":"API对接密钥错误,请在后台设置密钥"}');
	$rs=$DB->query("SELECT * FROM shua_tools WHERE active=1 order by tid asc limit $limit");
	while($res = $DB->fetch($rs)){
		$data[]=array('tid'=>$res['tid'],'cid'=>$res['cid'],'sort'=>$res['sort'],'name'=>$res['name'],'price'=>$res['price']);
	}
	exit(json_encode($data));
}
elseif($act=='orders')
{
	$tid=intval($_GET['tid']);
	$key=daddslashes($_GET['key']);
	$limit=isset($_GET['limit'])?intval($_GET['limit']):50;
	$format=isset($_GET['format'])?daddslashes($_GET['format']):'json';
	if(!$key)exit('{"code":-5,"msg":"确保各项不能为空"}');
	if($key!=$conf['apikey'])exit('{"code":-4,"msg":"API对接密钥错误,请在后台设置密钥"}');
	if($tid){
		$tool=$DB->get_row("SELECT * FROM shua_tools WHERE tid='$tid' and active=1 limit 1");
		if(!$tool)exit('{"code":-5,"msg":"商品ID不存在"}');
		$sqls=" and tid='$tid'";
		$value=$tool['value']>0?$tool['value']:1;
	}
	$rs=$DB->query("SELECT * FROM shua_orders WHERE status=0{$sqls} order by id asc limit $limit");
	while($res = $DB->fetch($rs)){
		$data[]=array('id'=>$res['id'],'tid'=>$res['tid'],'input'=>$res['input'],'input2'=>$res['input2'],'input3'=>$res['input3'],'input4'=>$res['input4'],'input5'=>$res['input5'],'value'=>$res['value'],'status'=>$res['status']);
		if($_GET['sign']==1)$DB->query("update `shua_orders` set status=1 where `id`='{$res['id']}'");
	}
	if($format=='text'){
		$txt = '';
		foreach($data as $row){
			$txt .= $row['input'] . ($row['input2']?'----'.$row['input2']:null) . ($row['input3']?'----'.$row['input3']:null) . ($row['input4']?'----'.$row['input4']:null) . ($row['input5']?'----'.$row['input5']:null) . '----' . $row['value'] . "\r\n";
		}
		exit($txt);
	}else{
		exit(json_encode($data));
	}
}
elseif($act=='change')
{
	$id=intval($_GET['id']);
	$key=daddslashes($_GET['key']);
	$status=intval($_GET['zt']); //1:已完成,2:正在处理,3:异常,4:待处理
	if(!$id || !$key)exit('{"code":-5,"msg":"确保各项不能为空"}');
	if($key!=$conf['apikey'])exit('{"code":-4,"msg":"API对接密钥错误,请在后台设置密钥"}');
	$row=$DB->get_row("SELECT * FROM shua_orders WHERE id='$id' limit 1");
	if($id=$row['id']) {
		$sql="update `shua_orders` set `status`='$status' where `id`='{$id}' limit 1";
		if($DB->query($sql)){
			$result=array("code"=>1,"msg"=>"修改成功","id"=>$id);
		}else{
			$result=array("code"=>-2,"msg"=>"修改失败","id"=>$id);
		}
	}
	else
	{
		$result=array("code"=>-5,"msg"=>"订单ID不存在");
	}
}
elseif($act == 'goodslist')
{
	$result['code'] = 0;
	if(isset($_POST['user']) && isset($_POST['pass'])){
		$user = trim(daddslashes($_POST['user']));
		$pass = trim(daddslashes($_POST['pass']));
		$userrow = $DB->get_row("SELECT * FROM `shua_site` WHERE `user` = '{$user}' LIMIT 1");
		if ($userrow && $userrow['user'] == $user && $userrow['pwd'] == $pass && $userrow['status'] == 1) {
			$islogin2 = 1;
			$price_obj = new Price($userrow['zid'],$userrow);
		} elseif ($userrow && $userrow['status'] == 0) {
			exit('{"code":-1,"message":"该账户已被封禁"}');
		} else {
			exit('{"code":-1,"message":"用户名或密码不正确"}');
		}
	}
	$rs=$DB->query("SELECT * FROM `shua_tools` WHERE `active` = 1 ORDER BY `cid` ASC,`sort` ASC");
	while($res = $DB->fetch($rs)){
		if($islogin2 == 1){
			$price_obj->setToolInfo($res['tid'],$res);
			$price = $price_obj->getToolPrice($res['tid']);
		}else{
			$price = 0;
		}
		$data[] = array('tid' => $res['tid'] , 'cid' => $res['cid'] , 'name' => $res['name'] , 'shopimg' => $res['shopimg'] , 'close' => $res['close'] , 'price' => $price);
	}
	$result['data'] = $data;
	exit(json_encode($result));
}
elseif($act == 'goodsdetails')
{
	$result['code'] = 0;
	$tid = intval($_POST['tid']);
	if(!$tid)exit('{"code":-1,"message":"商品ID不能为空"}');
	if(isset($_POST['user']) && isset($_POST['pass'])){
		$user = trim(daddslashes($_POST['user']));
		$pass = trim(daddslashes($_POST['pass']));
		$userrow = $DB->get_row("SELECT * FROM `shua_site` WHERE `user` = '{$user}' LIMIT 1");
		if ($userrow && $userrow['user'] == $user && $userrow['pwd'] == $pass && $userrow['status'] == 1) {
			$islogin2 = 1;
			$price_obj = new Price($userrow['zid'],$userrow);
		} elseif ($userrow && $userrow['status'] == 0) {
			exit('{"code":-1,"message":"该账户已被封禁"}');
		} else {
			exit('{"code":-1,"message":"用户名或密码不正确"}');
		}
	}
	$tool = $DB->get_row("SELECT * FROM `shua_tools` WHERE `tid` = {$tid} LIMIT 1");
	if($islogin2 == 1){
		$price_obj->setToolInfo($tid, $tool);
		$price = $price_obj->getToolPrice($tid);
	}else{
		$price = 0;
	}
	if($res['is_curl']==4){
		$isfaka = 1;
	}else{
		$isfaka = 0;
	}
	$data = array('tid'=>$tool['tid'],'cid'=>$tool['cid'],'sort'=>$tool['sort'],'name'=>$tool['name'],'value'=>$tool['value'],'price'=>$price,'prices'=>$tool['prices'],'input'=>$tool['input'],'inputs'=>$tool['inputs'],'desc'=>$tool['desc'],'alert'=>$tool['alert'],'shopimg'=>$tool['shopimg'],'repeat'=>$tool['repeat'],'multi'=>$tool['multi'],'min'=>$tool['min'],'max'=>$tool['max'],'close'=>$tool['close'],'isfaka'=>$isfaka);
	$result['data'] = $data;
	exit(json_encode($result));
}
elseif($act == 'pay')
{
	$result['code'] = -1;
	$tid = intval($_POST['tid']);
	if(!$tid)exit('{"code":-1,"message":"商品ID不能为空"}');
	$user = trim(daddslashes($_POST['user']));
	$pass = trim(daddslashes($_POST['pass']));
	$input1 = isset($_POST['input1']) ? trim(strip_tags(daddslashes($_POST['input1']))) : exit('{"code":-1,"message":"首个参数值不能为空"}');
	$input2 = trim(strip_tags(daddslashes($_POST['input2'])));
	$input3 = trim(strip_tags(daddslashes($_POST['input3'])));
	$input4 = trim(strip_tags(daddslashes($_POST['input4'])));
	$input5 = trim(strip_tags(daddslashes($_POST['input5'])));
	$num = isset($_POST['num']) ? intval($_POST['num']) : 1;
	$tool = $DB->get_row("SELECT * FROM `shua_tools` WHERE `tid` = {$tid} LIMIT 1");
	if ($tool && $tool['active'] == 1) {
		if($tool['close']==1)exit('{"code":-1,"msg":"当前商品维护中,停止下单!"}');
		$userrow = $DB->get_row("SELECT * FROM `shua_site` WHERE `user` = '{$user}' LIMIT 1");
		if ($userrow && $userrow['user'] == $user && $userrow['pwd'] == $pass && $userrow['status'] == 1) {
			$result['code'] = 0;
			if(in_array($input1,explode("|",$conf['blacklist']))) exit('{"code":-1,"message":"你的下单账号已被拉黑,无法下单!"}');
			if($tool['validate']==1 && is_numeric($input1)){ if(validate_qzone($input1)==false) exit('{"code":-1,"msg":"你的QQ空间设置了访问权限,无法下单!"}'); }
			if($tool['multi'] == 0 || $num < 1) $num = 1;
			
			$islogin2 = 1;
			$price_obj = new Price($userrow['zid'],$userrow);
			$price_obj->setToolInfo($tid,$tool);
			$price = $price_obj->getToolPrice($tid);
			$price=$price_obj->getFinalPrice($price, $num);
			if(!$price)exit('{"code":-1,"msg":"当前商品批发价格优惠设置不正确"}');

			$need = $price * $num;
			if($need == 0) exit('{"code":-2,"message":"不支持免费商品对接"}');
			if ($userrow['rmb'] < $need) exit('{"code":-2,"message":"余额不足,购买此商品还差' . ($need - $userrow['rmb']) . '元"}');

			$trade_no = date("YmdHis").rand(111,999).'RMB';
			$input = $input1 . ($input2 ? '|' . $input2 : null) . ($input3 ? '|' . $input3 : null) . ($input4 ? '|' . $inputvalue4 : null) . ($input5 ? '|' . $input5 : null);
			$sql = "INSERT INTO `shua_pay` (`trade_no`,`type`,`zid`,`input`,`num`,`addtime`,`name`,`money`,`ip`,`status`) VALUES";
			$sql .= "('{$trade_no}','rmb',{$userrow['zid']},'{$input}',{$num},'{$date}','{$tool['name']}',{$need},NULL,0)";
			if ($DB->query($sql)) {
				if ($DB->query("UPDATE `shua_site` SET `rmb` = rmb - {$need} WHERE `zid` = '{$userrow['zid']}'") && $DB->query("UPDATE `shua_pay` SET `status` = 1 WHERE `trade_no` = '{$trade_no}'")) {
					addPointRecord($userrow['zid'], $need, '消费', '购买 '.$tool['name']);
					$srow['tid'] = $tid;
					$srow['num'] = $num;
					$srow['input'] = $input;
					$srow['zid'] = $userrow['zid'];
					$srow['money'] = $need;
					$srow['trade_no'] = $trade_no;
					if($orderid = processOrder($srow)){
						$result['code'] = 0;
						$result['message'] = 'success';
						$result['orderid'] = $orderid;
						$djzt = $DB->get_column("SELECT djzt FROM shua_orders WHERE id = '$orderid' LIMIT 1");
						if($djzt == 3){
							$rs=$DB->query("SELECT * FROM shua_faka WHERE tid='$tid' AND orderid='$orderid' ORDER BY kid ASC");
							$kmdata=array();
							while($res = $DB->fetch($rs))
							{
								if(!empty($res['pw'])){
									$kmdata[]=array('card'=>$res['km'],'pass'=>$res['pw']);
								}else{
									$kmdata[]=array('card'=>$res['km']);
								}
							}
							$result['faka']=true;
							$result['kmdata']=$kmdata;
						}
					} else {
						$result['message'] = '下单失败 : ' . $DB->error();
					}
				} else {
					$result['message'] = '下单失败 : ' . $DB->error();
				}
			} else {
				$result['message'] = '下单失败 : ' . $DB->error();
			}
		} elseif ($userrow && $userrow['status'] == 0) {
			$result['message'] = '该账户已被封禁';
		} else {
			$result['message'] = '用户名或密码不正确';
		}
	} else {
		$result['message'] = '商品ID不存在';
	}
}
elseif($act == 'search') 
{
	$result['code'] = -1;
	$id = intval($_GET['id']);
	$row = $DB->get_row("SELECT * FROM `shua_orders` WHERE `id` = {$id} LIMIT 1");
	if ($row){
		$tool = $DB->get_row("select * from shua_tools where tid='{$row['tid']}' limit 1");
		$shequ = $DB->get_row("select * from shua_shequ where id='{$tool['shequ']}' limit 1");
		if($shequ['type']==1){
			$list = yile_chadan($shequ['url'], $tool['goods_id'], $row['input'], $row['djorder']);
		}elseif($shequ['type']==0 || $shequ['type']==2){
			$list = jiuwu_chadan($shequ['url'], $shequ['username'], $shequ['password'], $row['djorder']);
		}elseif($shequ['type']==3 || $shequ['type']==5){
			$list = xmsq_chadan($shequ['url'], $tool['goods_id'], $row['input'], $row['djorder']);
		}elseif($shequ['type']==10){
			$list = qqbug_chadan($shequ['password'], $row['djorder']);
		}elseif($shequ['type']==11){
			$list = jumeng_chadan($shequ['url'], $row['djorder']);
		}elseif($shequ['type']==20){
			if(class_exists("ExtendAPI") && method_exists('ExtendAPI','chadan')){
				$list = ExtendAPI::chadan($shequ['url'], $shequ['username'], $shequ['password'], $row['djorder'], $tool['goods_id'], $row['input']);
			}else{
				exit('{"code":-1,"msg":"该对接类型暂不支持查询订单进度"}');
			}
		}else{
			exit('{"code":-1,"msg":"该对接类型暂不支持查询订单进度"}');
		}
		if($list['order_state']=='已完成' && $row['status']==2){
			$DB->query("UPDATE `shua_orders` SET `status`=1 WHERE id='{$id}'");
		}
		if(is_array($list)){
			$result['code'] = 0;
			$result['message'] = 'success';
			$result['data'] = $list;
		}else{
			$result['message'] = '获取数据失败';
		}
	} else {
		$result['message'] = '订单不存在';
	}
}
elseif($act=='siteinfo')
{
	$count1=$DB->count("SELECT count(*) from shua_orders");
	$count2=$DB->count("SELECT count(*) from shua_orders where status>=1");
	$count3=$DB->count("SELECT count(*) from shua_site");
	$result=array('sitename'=>$conf['sitename'],'kfqq'=>$conf['qq']?$conf['qq']:$conf['kfqq'],'anounce'=>$conf['anounce'],'modal'=>$conf['modal'],'bottom'=>$conf['bottom'],'alert'=>$conf['alert'],'gg_search'=>$conf['gg_search'],'gg_panel'=>$conf['gg_panel'],'version'=>VERSION,'build'=>$conf['build'],'orders'=>$count1,'orders1'=>$count2,'sites'=>$count3,'appalert'=>$conf['appalert']);
}
elseif($act=='token')
{
	$key = isset($_GET['key'])?$_GET['key']:exit('No key');
	$result=array('token'=>get_app_token($key),'time'=>time());
}
else
{
	$result=array("code"=>-5,"msg"=>"No Act!");
}

echo json_encode($result);
$DB->close();
?>

嘿嘿水一个

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1072682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NPDP和PMP,产品经理应该考哪个?

PMP教的是如何做一个项目&#xff0c;NPDP教的是如何做一个产品。 而在一个产品开发过程中&#xff0c;PMP知识体系讲述的是如何给出一个“产品”&#xff0c;NPDP知识体系讲述的是产品开始到结束的过程。虽然产品的生命周期比项目的生命周期长&#xff0c;但从知识体系看&…

考研是为了逃避找工作的压力吗?

如果逃避眼前的现实&#xff0c; 越是逃就越是会陷入痛苦的境地&#xff0c;要有面对问题的勇气&#xff0c;渡过这个困境的话&#xff0c;应该就能一点点地解决问题。 众所周知&#xff0c;考研初试在大四上学期的十二月份&#xff0c;通常最晚的开始准备时间是大三暑假&…

深入了解 GPU 互联技术——NVLINK

随着人工智能和图形处理需求的不断增长&#xff0c;多 GPU 并行计算已成为一种趋势。对于多 GPU 系统而言&#xff0c;一个关键的挑战是如何实现 GPU 之间的高速数据传输和协同工作。然而&#xff0c;传统的 PCIe 总线由于带宽限制和延迟问题&#xff0c;已无法满足 GPU 之间通…

大数据软件开发的数据队列框架

在软件开发中&#xff0c;数据队列框架用于实现消息传递、异步通信和事件驱动的系统。以下是一些常见的数据队列框架和消息中间件&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.Apache Kafka&…

小文的美丽转型:从美业学徒到皇嘉集团销售冠军

"" 小文来自山东菏泽的一个农村家庭&#xff0c;她为了供弟弟考上大学&#xff0c;家庭的负担很重&#xff0c;父母收入也不高。因此&#xff0c;小文只读到高一就来到省城的一家综合美容院&#xff0c;学习美甲和美容技术。每天早上起床后&#xff0c;她要打扫卫生&…

桌面文件不见了怎么恢复?4招轻松找回!

桌面文件不见了怎么恢复&#xff1f;4招轻松找回&#xff01; 不知道桌面文件不见了怎么恢复&#xff1f;阅读本文找到答案&#xff0c;这里向你介绍了桌面文件恢复的4种方法&#xff0c;并说明了详细的操作步骤&#xff0c;赶紧来试试&#xff01; 桌面文件突然不见了&…

黑五网一,亚马逊测评系统如何搭建,才能成为重要的运营手段

随着黑五网一购物狂欢节的临近&#xff0c;许多卖家都在积极备货、补单、优化产品&#xff0c;以争取在活动期间获得更好的销售业绩。然而&#xff0c;许多卖家在测评时遭遇了各种问题&#xff0c;例如砍单、掉评以及买卖家账号被封等。 据了解&#xff0c;很多卖家和测评服务…

第八章:关系数据库设计

一、范式 一、BC范式&#xff08;BCNF&#xff09; &#xff08;1&#xff09;定义 BC范式可以消除所有利用函数依赖发现的冗余 范式是对于关系模式而言的&#xff0c;即可以说关系模式R是一个范式。 因此对于BC范式&#xff0c;它需要满足的条件是&#xff0c;对于它的所有函…

网络安全工程师自主学习计划表(具体到阶段目标,保姆级安排,就怕你学不会!)

前言 接下来我将给大家分享一份网络安全工程师自学计划指南&#xff0c;全文将从学习路线、学习规划、学习方法三个方向来讲述零基础小白如何通过自学进阶网络安全工程师&#xff0c;全文篇幅有点长&#xff0c;同学们可以先点个收藏&#xff0c;以免日后错过了。 目录 前言…

Android修改默认system/bin/下可执行程序拥有者和权限,使用实例,只有root和系统app权限才能执行某个命令。

一、执行ls -l /system/bin/ 查看一下用户和权限。 二、这些权限在哪里修改呢? 默认编译system/bin/可执行程序赋予权限的地方system\core\libcutils\fs_config.cpp 文件里面的android_files 三、使用实例,只有root和系统app权限才能执行某个命令,如上面的sn_writer命令,只…

【算法刷题】【链表】链表内指定区间反转:将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n),空间复杂度)O(1)。

题目 解题 import java.util.*;/** public class ListNode {* int val;* ListNode next null;* public ListNode(int val) {* this.val val;* }* }*/public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回…

正点原子嵌入式linux驱动开发——Linux内核启动流程

上一篇笔记学习了Linux内核的顶层Makefile&#xff0c;现在来看Linux内核的大致启动流程&#xff0c;Linux内核的启 动流程要比uboot复杂的多&#xff0c;涉及到的内容也更多&#xff0c;因此本章就大致的了解一Linux内核的启动流程。 链接脚本vmlinux.lds 要分析Linux启动流…

2023高交会“创新驱动发展·智慧赋能未来”招商工作已接近尾声

第二十五届中国国际高新技术成果交易会&#xff08;简称“高交会”&#xff09;将于2023年11月15日至19日在深圳会展中心举行。本届高交会以“创新驱动发展智慧赋能未来”为主题&#xff0c;聚焦战略性新兴产业和未来产业&#xff0c;集中展示中国高新技术成果和创新实力。 作为…

什么是基于意图的网络(IBN)

基于意图的网络是一种网络技术&#xff0c;它根据业务意图&#xff08;来自网络管理员的服务请求&#xff09;配置 IT 基础架构&#xff0c;无需任何人工干预&#xff0c;它不断提供关键的网络见解&#xff0c;并不断调整硬件配置以确保满足意图&#xff0c;它将网络从以设备为…

Java练习题-用冒泡排序法实现数组排序

✅作者简介&#xff1a;CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1&#x1f3c6; &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f525;系列专栏&#xff1a;Java练习题 &#x1f4ac;个人格言&#xff1a;不断的翻越一座又…

超详细!Android Termux上如何安装MySQL,内网穿透实现公网远程访问

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备&#xff0c;尽管最初并非设计为服务器&#xff0c;但是随着技术的进步我们可以将Android配置为生产力工具&#xff0c;变成一个随身…

C++游戏后端开发(魔兽世界,MMO,TrinityCore源码拆解) 教程

基于魔兽开源后端框架 TrinityCore 的技术拆解课程 一、TrinityCore CMake项目构建 1.1 CMake的使用 什么是CMake , CMake 的工作流程 CMakeLists.txt的编写规则 静态库生成以及链接 动态库生成以及链接 嵌套CMake 1.2 Windows和Linux下编 译调试环境搭建 cmake和grap…

Android原生实现控件outline方案(API28及以上)

Android控件的Outline效果的实现方式有很多种&#xff0c;这里介绍一下另一种使用Canvas.drawPath()方法来绘制控件轮廓Path路径的实现方案&#xff08;API28及以上&#xff09;。 实现效果&#xff1a; 属性 添加Outline相关属性&#xff0c;主要包括颜色和Stroke宽度&…

桌面动态壁纸

1、将压缩包中解压&#xff0c;选择所需要的壁纸复制到目录 2、解压kugou动态壁纸运行程序&#xff0c;文件选择默认打开文件为animation_desktop_webgl.exe 3、重启电脑生效

【总结】kubernates 插件工具总结

在此记录工作中用到的关于 kubernates 的插件小工具&#xff0c;以防以后忘记 1、能显示 kubernates 所处上下文的插件 kube-ps1 github 地址&#xff1a; https://github.com/jonmosco/kube-ps1 效果 2、能方便切换 kubernates 上下文的插件 kubecm github 地址&#xff1…