首页
网络资源
技术分享
云资源
分享你我
行动起来,活在当下
累计撰写
107
篇文章
累计创建
13
个标签
累计收到
0
条评论
栏目
首页
网络资源
技术分享
云资源
目 录
CONTENT
以下是
技术分享
相关的文章
C# 使用NPOI手搓excel转html
/// <summary> /// excel转html /// </summary> public class ExcelToHtml { /// <summary> /// excel转html /// </summary> /// <param name="in
2024-08-06
5
0
0
技术分享
docker 部署redis 并以配置文件方式启动
<p>先创建redis 数据目录和配置文件目录</p> <h5>创建数据目录</h5> <pre><code>mkdir -p /root/redis/data</code></pre> <h5>创建配置文件目录</h5> <pre><code>mkdir -p /root/redis/conf</code></pre> <h5>创建配置文件</h5> <pre><code>vim redis.conf</code></pre> <pre><code class="language-bash"> # Redis configuration file example. # # Note that in order to read the configuration file, Redis must be # started with the file path as first argument: # # ./redis-server /path/to/redis.conf # Note on units: when memory size is needed, it is possible to specify # it in the usual form of 1k 5GB 4M and so forth: # # 1k =<!--autointro--></code></pre><!--autointro--><!--111-->
2023-06-07
8
0
0
技术分享
uniapp 使用sqlite 保存数据封装使用
<p>```<br>class Sqlite {</p> <p> #privatedbName = ‘’;</p> <p> #privatePath = ‘’;<br> constructor(dbName, path = ‘’) {<br> this.#privatedbName = dbName;<br> this.#privatePath = path;<br> console.log(this.#privatedbName, this.#privatePath);<br> }<br> // 监听数据是否打开<br> isOpenDB() {<br> let dbName = this.#privatedbName;<br> let dbPath = this.#privatePath || <code>_doc/${dbName}.db</code>;<br> //数据库打开了就返回true,否则返回false<br> let isopen = plus.sqlite.isOpenDatabase({<br> name: dbName,<br> path: dbPath,<br> });<br> return isopen;<br> }</p> <p> // 创建数据库/打开数据库<br> openDB() {<br> return new Promise((resolve, reject) =<!--autointro--></p> <!--110-->
2023-02-27
5
0
0
技术分享
Open-IM-SDK-Web改版本支持Open-IM-SDK-Nodejs
<p>地址:<a href="https://github.com/Child-Cheng/Open-IM-SDK-Nodejs">https://github.com/Child-Cheng/Open-IM-SDK-Nodejs</a></p><!--autointro--><!--109-->
2023-02-16
9
0
0
技术分享
C# 多进程管道双向通信
<p>服务端代码</p> <pre><code> public class ServerPipe { #region 成员变量 /// <summary> /// 接受名称 /// </summary> private string _receivePipeName; /// <summary> /// 接受数据回调函数 /// </summary> public event ResultCallBackPoint _resultCallBackEvent; /// <summary></summary><!--autointro--></code></pre><!--autointro--><!--108-->
2022-12-14
4
0
0
技术分享
奥特曼(autMan)对接elegram机器人设置
<p><strong>一共需要获取两个值</strong> <strong>telegramBotToken和telegramBotUserId</strong> <strong>以下简称token和ID</strong></p> <h3>获取 token 值</h3> <p><img src="https://www.javalc.com/zb_users/upload/2022/11/202211261321596688843.jpg" alt="" /></p> <p>在Telegram搜索【@BotFather】</p> <h6>创建机器人</h6> <p><img src="https://www.javalc.com/zb_users/upload/2022/11/202211261320501348924.jpg" alt="" /></p> <p>点击【开始】</p> <p><img src="https://www.javalc.com/zb_users/upload/2022/11/202211261324017862002.png" alt="" /></p> <p>点击【/newbot】</p> <p>然后BotFather机器人回复 <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261325019893353.jpg" alt="" /> Alright, a new bot. How are we going to call it? Please choose a name for your bot. 是机器人名称输入自己喜欢的就行</p> <p>回复自己想要的名称后BotFather机器人会让你输入机器人的ID <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261326421217043.png" alt="" /></p> <p>Good. Now let's choose a username for your bot. It must end in <code>bot</code>. Like this, for example: TetrisBot or tetris_bot. 输入一个机器人id并以bot以尾如 child08bot 、qwe_jd_bot </p> <p>如果重复则显示下面那句 Sorry, this username is already taken. Please try something different. 是机器人ID已经存在</p> <p>创建机器成功则显示如下: <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261320079465872.jpg" alt="" /></p> <h4>获UserID值</h4> <p><img src="https://www.javalc.com/zb_users/upload/2022/11/202211261330465222957.png" alt="" /> <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261331202457555.png" alt="" /> <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261331562730425.png" alt="" /></p> <h4>cf 加速代理配置</h4> <p><a href="https://dash.cloudflare.com/">登录cloudflare</a> 添加托管域名 <a href="https://www.youngfree.cn/seo/2878.html">参考</a> 托管添加完成后选择一个域名进去。例如我选择第一个 <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261345368438768.png" alt="" /></p> <p>选择DNS</p> <p><img src="https://www.javalc.com/zb_users/upload/2022/11/202211261347271228511.png" alt="" /> 然后显示如下图 <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261359132999436.png" alt="" /></p> <p>添加一个A 记录的解析 ipv4 地址 随便写能ping通就行 这里我写:8.8.8.8 Name (required)是名称如果使用主域名就填 @ 我这里用子域:tgbot 示例: 主域是:xxx.com 填 @ 那访问就是 xxx.com 填tgbot 那访问就是 tgbot.xxx.com <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261352248685662.png" alt="" /> 然后点保存[Save] <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261353334415031.png" alt="" /></p> <p>添加工作路由[Workers Routes] <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261358189401533.png" alt="" /> <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261400392168086.png" alt="" /> 创建一个服务 <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261403385271760.png" alt="" /></p> <p>Service name 填写自己喜欢的名称后面绑定自己域名的时候会用到。 <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261404591604239.png" alt="" /> 点击[Quick edit] 进入编辑 <img src="https://www.javalc.com/zb_users/upload/2022/11/202211261406368354089.png" alt="" /> 把下面代码复制到左边的框中 然后把[888518123]改成你自己机器人的那个数值</p> <pre><code> const whitelist = ["/bot888518123:"]; const tg_host = "api.telegram.org"; addEventListener('fetch', event =<!--autointro--></code></pre><!--autointro--><!--107-->
2022-11-26
5
0
0
技术分享
Openwrt下电脑已经获得IPv6但网络连接提示“无Internet访问权限”解决方法
<p><img src="https://www.javalc.com/zb_users/upload/2022/11/202211152151214195135.png" alt=""><br>解决办法:<br> 1,先电脑连接光猫确认自己宽带有ipv6(可以<a href="http://test-ipv6.com/测试)">http://test-ipv6.com/测试)</a><br> 2,路由已经分配IPV6,但是无访问权限<br> <img src="https://www.javalc.com/zb_users/upload/2022/11/202211152151063704815.png" alt=""><br> 3,修改DHCP/DNS高级设置,禁止解析IPV6 DNS记录,取消勾选(<strong>不能打钩</strong>)<br> <img src="https://www.javalc.com/zb_users/upload/2022/11/202211152154092032411.png" alt=""><br> 4,修改负载均衡-策略-备用成员(改为默认-使用主路由表)<br> <img src="https://www.javalc.com/zb_users/upload/2022/11/202211152155347865036.png" alt=""><br> 有的固体可能没有这个”负载均衡” 自己编译的可以在LuCL里面 “MWAN3”<br> 5,接口设置-LAN-高级设置(使用内置IPV6管理),接口设置-LAN-DHCP服务器-ipv6设置(路由通告服务、DHCPv6服务都是服务器模式,DHCPv6模式是无状态+有状态)<br> <img src="https://www.javalc.com/zb_users/upload/2022/11/202211152157428739614.png" alt=""><br> <!--autointro--></p> <!--106-->
2022-11-15
21
0
0
技术分享
使GitHub Actions 的 OpenWrt 在线集成自动编译实现自己的固件自由
<h4 id="h4-u4E3Au4EC0u4E48u8981u81EAu5DF1u7F16u8BD1u56FAu4EF6"><a name="为什么要自己编译固件" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>为什么要自己编译固件</h4><p>如果你在使用软路由,对于OpenWrt应该不陌生,肯定也纠结和尝试过各种网上的固件,对于大部分人来说,网上的固件是够用的,但我还是建议大家自己编译固件,因为网上的固件要么插件太多,要么自己想要的插件没有,其次就是编译的源码很多没有共享出来,你会不会也担心安全问题?</p> <p>今天给大家分享一下如何使用Github Action进行云编译OpenWrt。</p> <h3 id="h3-u4E91u7F16u8BD1"><a name="云编译" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>云编译</h3><p>使用Github Action编译OpenWrt固件网上有很多教程,但是对于小白来说,还是不友好,我踩了不少坑,以下教程适合小白用户。</p> <p>开始之前首先感谢以下几位大佬:</p> <p>Lean: <a href="https://github.com/coolsnowwolf/lede">https://github.com/coolsnowwolf/lede</a><br>P3TERX: <a href="https://github.com/P3TERX/Actions-OpenWrt">https://github.com/P3TERX/Actions-OpenWrt</a><br>kenzok8: <a href="https://github.com/kenzok8/small-package">https://github.com/kenzok8/small-package</a><br>fw876: <a href="https://github.com/fw876/helloworld">https://github.com/fw876/helloworld</a></p> <h5 id="h5-u5DE5u5177u51C6u5907"><a name="工具准备" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>工具准备</h5><p>首先需要准备以下工具:</p> <pre><code>一个GitHub账户 一台装有Ubuntu的电脑或者虚拟机</code></pre><p>为什么需要Ubuntu的电脑或者虚拟机呢?网上有教程通过Github Action的SSH功能也能实现编译,但是我实际验证非常容易报错和中断,所以建议大家采用Ubuntu系统来生成配置文件。</p> <h4 id="h4--github-"><a name="创建Github仓库" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>创建Github仓库</h4><p>登陆Github账户,访问P3TERX大佬的原始仓库,根据P3TERX的说明,创建自己的仓库,步骤如下:</p> <p>1.进入 P3TERX/Actions-OpenWrt 项目页面,点击页面中的 Use this template (使用这个模版)按钮。<br><img src="https://www.javalc.com/zb_users/upload/2022/11/202211141447476281330.png" alt=""></p> <p>2.填写仓库名称,然后点击Create repository from template(从模版创建储存库)按钮<br><img src="https://www.javalc.com/zb_users/upload/2022/11/202211141450043443055.png" alt=""><br>3.经过几秒钟的等待,页面会跳转到新建的仓库,内容和我的项目是相同的。然后点击Create new file(创建新文件)按钮<br><img src="https://www.javalc.com/zb_users/upload/2022/11/202211141451342355755.png" alt=""></p> <p>4.文件名填写为.config,这里不需要填写,后面会讲如何配置<br><img src="https://www.javalc.com/zb_users/upload/2022/11/202211141453082037227.png" alt=""></p> <p>5.翻到页面最下方,点击Commit new file(提交新文件)按钮<br><img src="https://www.javalc.com/zb_users/upload/2022/11/202211141454083920763.png" alt=""><br><strong>修改sh(可选)</strong></p> <h4 id="h4--ip-"><a name="修改固件的IP地址" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>修改固件的IP地址</h4><p>在Github Code页面,找到diy-part2.sh,点击编辑,修改默认IP地址,将192.168.2.1改为你想设置的地址即可。<br><img src="https://www.javalc.com/zb_users/upload/2022/11/202211141457073954308.png" alt=""></p> <h5 id="h5-u6DFBu52A0u8F6Fu4EF6u5305u5E93"><a name="添加软件包库" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>添加软件包库</h5><p>在Github Code页面,找到diy-part1.sh,点击编辑,按需求增加编译时可选的软件包,以下三个是我所使用的,包含绝大部分支持OpenWRT的软件包,大家可以访问对应的地址,查看详细软件包仓库说明<br><img src="https://www.javalc.com/zb_users/upload/2022/11/202211141458432951133.png" alt=""></p> <h5 id="h5--config-"><a name="生成Config文件" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>生成Config文件</h5><p><em>P3TERX大佬的脚本其实是支持SSH访问来生成Config,但是我几经尝试均失败,最后采用本地生成Config的方法成功了。</em></p> <h3 id="h3--ubuntu-lean-ubuntu-lean-"><a name="登陆Ubuntu系统,按 Lean 的教程进行编译 登陆Ubuntu系统,按 Lean 的教程进行编译" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>登陆Ubuntu系统,按<a href="https://github.com/coolsnowwolf/lede">Lean</a>的教程进行编译 登陆Ubuntu系统,按<a href="https://github.com/coolsnowwolf/lede">Lean</a>的教程进行编译</h3><p>1.安装编译依赖</p> <pre><code>sudo apt update -y sudo apt full-upgrade -y sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \ bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \ git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \ libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \ mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip qemu-utils \ rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev </code></pre><p>2.下载源代码</p> <pre><code>git clone https://github.com/coolsnowwolf/lede && cd lede</code></pre><p>这里需要注意:</p> <h3 id="h3--root-"><a name="不能用使root权限帐户拉取(虽然可以拉但后面编译就凉凉)" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>不能用使root权限帐户拉取(虽然可以拉但后面编译就凉凉)</h3><h3 id="h3--sudo-sudo-"><a name="不能在需要使用sudo 提取的地方拉不然后面编译加sudo 就报错不加就是权限不足" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>不能在需要使用sudo 提取的地方拉不然后面编译加sudo 就报错不加就是权限不足</h3><p>3.进入本地的LEDE文件夹,修改feeds.conf.default文件,增加三个软件仓库<br><img src="https://www.javalc.com/zb_users/upload/2022/11/202211141503131733124.png" alt=""></p> <p>4.生成.Config文件(一会把生成的内容复制到前面创建.config文件中)</p> <pre><code>./scripts/feeds update -a ./scripts/feeds install -a make menuconfig </code></pre><p>之后就能看到OpenWrt的配置界面,按需选择想要的设置,然后保存。进入本地的LEDE文件夹,可以看到.Config文件<br><img src="https://www.javalc.com/zb_users/upload/2022/11/202211141506129906380.png" alt=""></p> <p>将.Config文件上传到Github仓库<br><img src="https://www.javalc.com/zb_users/upload/2022/11/202211141507344352960.png" alt=""></p> <h5 id="h5--action-"><a name="开启Action编译" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>开启Action编译</h5><p>在Github页面,点击Action,选择Build OpenWrt,SSH默认为false,Run workflow即开始云编译,等待编译结束后,可以在Act<!--autointro--></p> <!--105-->
2022-11-14
2
0
0
技术分享
免费内网穿透之Cloudflare
<h5 id="h5--80-"><a name="由于国内运营商不让用80端口,备案又麻烦。" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>由于国内运营商不让用80端口,备案又麻烦。</h5><pre><code>1. 优缺点 2. 免费且不需要服务器 3. 暂时不支持UDP协议</code></pre><h5 id="h5-u524Du63D0u6761u4EF6"><a name="前提条件" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>前提条件</h5><pre><code>1. 一个托管于Cloudflare的域名,相关教程看这里创建 Cloudflare 帐户并添加网站 2. 一台本地Linux Web机器,即内网穿透的对象 3. 正常网络连接 4. 安装 Cloudflared</code></pre><h5 id="h5--cloudflared"><a name="安装 Cloudflared" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>安装 Cloudflared</h5><pre><code>curl -LO https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb dpkg -i cloudflared-linux-amd64.deb rm cloudflared-linux-amd64.deb</code></pre><h5 id="h5--cloudflared"><a name="登录 Cloudflared" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>登录 Cloudflared</h5><pre><code>cloudflared tunnel login</code></pre><p>这时会弹出来一个URL,用浏览器打开,登录认证,然后选择你想用来做内网穿透的域名即可。</p> <p>成功后会生成证书,放置于~/cloudflared/cert.pem中。</p> <h5 id="h5-u65B0u5EFAu96A7u9053"><a name="新建隧道" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>新建隧道</h5><h6 id="h6-u540Du5B57u53EFu4EE5u968Fu610Fu8D77"><a name="名字可以随意起" class="reference-link" href="#"></a><span class="header-link octicon octicon-link"></span>名字可以随意起</h6><p>```<br>cloudflared tunnel create <Tunnel-NAME><!--autointro--></p> <!--103-->
2022-11-04
4
0
0
技术分享
uniapp nvue 仿抖音评论
<h5>评论框-组件</h5> <pre><code> <template> <!-- @tap=";" @mousemove=";" :style="'bottom:'+KeyboardHeight+'px;'" --> <view> <view class="comment_mask" :style="maskStyle" @tap.stop="maskCancel"></view> <view :class="{'input':isMaskContentStyle==true,'onInput':isMaskContentStyle==false}" class="comment_mask_content" :style="inputStyle" @tap.stop=";" @click.stop=";"></view></template><!--autointro--></code></pre><!--autointro--><!--102-->
2022-09-28
4
0
0
技术分享
1
2
3
4
5
...
10