Skip to content

Commit bb2020e

Browse files
committed
加入一键复制所有节点
1 parent e11b173 commit bb2020e

2 files changed

Lines changed: 73 additions & 51 deletions

File tree

app/Http/Controllers/UserController.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ public function index(Request $request)
106106
->orderBy('ss_node.id', 'asc')
107107
->get();
108108

109+
$allNodes = ''; // 全部节点SSR链接,用于一键复制所有节点
109110
foreach ($nodeList as &$node) {
110111
// 获取分组名称
111112
$group = SsGroup::query()->where('id', $node->group_id)->first();
@@ -151,6 +152,8 @@ public function index(Request $request)
151152
$node->txt = $txt;
152153
$node->ssr_scheme = $ssr_scheme;
153154
$node->ss_scheme = $node->compatible ? $ss_scheme : ''; // 节点兼容原版才显示
155+
156+
$allNodes .= $ssr_scheme . '|';
154157
} else {
155158
// 生成v2ray scheme
156159
$v2_json = [
@@ -194,6 +197,7 @@ public function index(Request $request)
194197
$node->labels = SsNodeLabel::query()->with('labelInfo')->where('node_id', $node->id)->get();
195198
}
196199

200+
$view['allNodes'] = rtrim($allNodes, "|");
197201
$view['nodeList'] = $nodeList;
198202

199203
return Response::view('user.index', $view);

resources/views/user/index.blade.php

Lines changed: 69 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -159,67 +159,72 @@
159159
</div>
160160

161161
@if(!$nodeList->isEmpty())
162-
<div class="row widget-row">
163-
<div class="col-md-12">
164-
<div class="portlet light bordered">
165-
<div class="portlet-title">
166-
<div class="caption">
167-
<span class="caption-subject font-blue bold">{{trans('home.my_node_list')}}</span>
162+
<div class="row widget-row">
163+
<div class="col-md-12">
164+
<div class="portlet light bordered">
165+
<div class="portlet-title">
166+
<div class="caption">
167+
<span class="caption-subject font-blue bold">{{trans('home.my_node_list')}}</span>
168+
</div>
169+
<div class="actions">
170+
<div class="btn-group btn-group-devided" data-toggle="buttons">
171+
<button class="btn btn-info" id="copy_all_nodes" data-clipboard-text="{{$allNodes}}"> 复制所有节点 </button>
172+
</div>
173+
</div>
168174
</div>
169-
</div>
170-
<div class="portlet-body">
171-
<div class="tab-content">
172-
<div class="tab-pane active">
173-
<div class="mt-comments">
174-
@foreach($nodeList as $node)
175-
<div class="mt-comment">
176-
<div class="mt-comment-img" style="width:auto;">
177-
@if($node->country_code)
178-
<img src="{{asset('assets/images/country/' . $node->country_code . '.png')}}"/>
179-
@else
180-
<img src="{{asset('/assets/images/country/un.png')}}"/>
181-
@endif
182-
</div>
183-
<div class="mt-comment-body">
184-
<div class="mt-comment-info">
185-
<span class="mt-comment-author">{{$node->name}}</span>
186-
<span class="mt-comment-date">
187-
@if(!$node->online_status)
188-
<span class="badge badge-danger">维护中</span>
189-
@endif
190-
</span>
175+
<div class="portlet-body">
176+
<div class="tab-content">
177+
<div class="tab-pane active">
178+
<div class="mt-comments">
179+
@foreach($nodeList as $node)
180+
<div class="mt-comment">
181+
<div class="mt-comment-img" style="width:auto;">
182+
@if($node->country_code)
183+
<img src="{{asset('assets/images/country/' . $node->country_code . '.png')}}"/>
184+
@else
185+
<img src="{{asset('/assets/images/country/un.png')}}"/>
186+
@endif
191187
</div>
192-
<div class="mt-comment-text"> {{$node->desc}} </div>
193-
<div class="mt-comment-details">
194-
<span class="mt-comment-status mt-comment-status-pending">
195-
@if($node->labels)
196-
@foreach($node->labels as $vo)
197-
<span class="badge badge-info">{{$vo->labelInfo->name}}</span>
198-
@endforeach
199-
@endif
200-
</span>
201-
<ul class="mt-comment-actions" style="display: block;">
202-
<li>
203-
<a class="btn btn-sm green btn-outline" data-toggle="modal" href="#txt_{{$node->id}}" > <i class="fa fa-reorder"></i> </a>
204-
</li>
205-
<li>
206-
<a class="btn btn-sm green btn-outline" data-toggle="modal" href="#link_{{$node->id}}"> @if($node->type == 1) <i class="fa fa-paper-plane"></i> @else <i class="fa fa-vimeo"></i> @endif </a>
207-
</li>
208-
<li>
209-
<a class="btn btn-sm green btn-outline" data-toggle="modal" href="#qrcode_{{$node->id}}"> <i class="fa fa-qrcode"></i> </a>
210-
</li>
211-
</ul>
188+
<div class="mt-comment-body">
189+
<div class="mt-comment-info">
190+
<span class="mt-comment-author">{{$node->name}}</span>
191+
<span class="mt-comment-date">
192+
@if(!$node->online_status)
193+
<span class="badge badge-danger">维护中</span>
194+
@endif
195+
</span>
196+
</div>
197+
<div class="mt-comment-text"> {{$node->desc}} </div>
198+
<div class="mt-comment-details">
199+
<span class="mt-comment-status mt-comment-status-pending">
200+
@if($node->labels)
201+
@foreach($node->labels as $vo)
202+
<span class="badge badge-info">{{$vo->labelInfo->name}}</span>
203+
@endforeach
204+
@endif
205+
</span>
206+
<ul class="mt-comment-actions" style="display: block;">
207+
<li>
208+
<a class="btn btn-sm green btn-outline" data-toggle="modal" href="#txt_{{$node->id}}" > <i class="fa fa-reorder"></i> </a>
209+
</li>
210+
<li>
211+
<a class="btn btn-sm green btn-outline" data-toggle="modal" href="#link_{{$node->id}}"> @if($node->type == 1) <i class="fa fa-paper-plane"></i> @else <i class="fa fa-vimeo"></i> @endif </a>
212+
</li>
213+
<li>
214+
<a class="btn btn-sm green btn-outline" data-toggle="modal" href="#qrcode_{{$node->id}}"> <i class="fa fa-qrcode"></i> </a>
215+
</li>
216+
</ul>
217+
</div>
212218
</div>
213219
</div>
214-
</div>
215-
@endforeach
220+
@endforeach
221+
</div>
216222
</div>
217223
</div>
218224
</div>
219225
</div>
220226
</div>
221227
</div>
222-
</div>
223228
@endif
224229
</div>
225230
<div class="col-md-4" >
@@ -637,4 +642,17 @@ function exchangeSubscribe() {
637642
});
638643
}
639644
</script>
645+
646+
<script>
647+
var copy_all_nodes = document.getElementById('copy_all_nodes');
648+
var clipboard = new Clipboard(copy_all_nodes);
649+
650+
clipboard.on('success', function(e) {
651+
layer.alert("复制成功,通过右键菜单倒入节点链接即可!");
652+
});
653+
654+
clipboard.on('error', function(e) {
655+
console.log(e);
656+
});
657+
</script>
640658
@endsection

0 commit comments

Comments
 (0)