N3RDN/JN/N3RD/J/hfq.jar
2023-12-02 22:32:55 +08:00

2979 lines
102 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang='zh-CN'>
<head>
<title>jar/my_spider.jar · HongFei/cfg - Gitee.com</title>
<meta content='on' http-equiv='x-dns-prefetch-control'>
<link href='//e.gitee.com' rel='dns-prefetch'>
<link href='//files.gitee.com' rel='dns-prefetch'>
<link href='//toscode.gitee.com' rel='dns-prefetch'>
<link href='https://cn-assets.gitee.com' rel='dns-prefetch'>
<link href='https://portrait.gitee.com' rel='dns-prefetch'>
<link rel="shortcut icon" type="image/vnd.microsoft.icon" href="https://cn-assets.gitee.com/assets/favicon-9007bd527d8a7851c8330e783151df58.ico" />
<link rel="canonical" href="https://gitee.com/hongfeiq/cfg" />
<meta content='gitee.com/hongfeiq/cfg git https://gitee.com/hongfeiq/cfg.git' name='go-import'>
<meta charset='utf-8'>
<meta content='always' name='referrer'>
<meta content='Gitee' property='og:site_name'>
<meta content='Object' property='og:type'>
<meta content='https://gitee.com/hongfeiq/cfg/blob/master/jar/my_spider.jar' property='og:url'>
<meta content='https://gitee.com/static/images/logo_themecolor.png' itemprop='image' property='og:image'>
<meta content='jar/my_spider.jar · HongFei/cfg - Gitee.com' itemprop='name' property='og:title'>
<meta content='自用维护使用,请勿传播' property='og:description'>
<meta content='码云,Gitee,代码托管,Git,Git@OSC,Gitee.com,开源,内源,项目管理,版本控制,开源代码,代码分享,项目协作,开源项目托管,免费代码托管,Git代码托管,Git托管服务' name='Keywords'>
<meta content='自用维护使用,请勿传播' itemprop='description' name='Description'>
<meta content='pc,mobile' name='applicable-device'>
<meta content="IE=edge" http-equiv="X-UA-Compatible" />
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="7tLCXjW3K/EWlN2NYOhSJEgJS/yx8RbasjsiszY17UB9AgeiYUjb/CIKfowlBPA8u5Gf1QmcOPFfPhT4nXlWXA==" />
<link rel="stylesheet" media="all" href="https://cn-assets.gitee.com/assets/application-ec793cdf9a74183654ca046c20a4c35d.css" />
<script>
//<![CDATA[
window.gon = {};gon.locale="zh-CN";gon.sentry_dsn=null;gon.baidu_register_hm_push=null;gon.sensor={"server_url":"https://haveaniceday.gitee.com:3443/sa?project=production","sdk_url":"https://cn-assets.gitee.com/assets/static/sensors-sdk-2f850fa5b654ad55ac0993fda2f37ba5.js","page_type":"其他"};gon.info={"controller_path":"blob","action_name":"show","current_user":{"id":13208616,"name":"n3rddd","username":"n3rddd","official":false,"admin":false,"avatar_url":"no_portrait.png#n3rddd-n3rddd"}};gon.tour_env={"current_user":"n3rddd","action_name":"show","original_url":"https://gitee.com/hongfeiq/cfg/blob/master/jar/my_spider.jar","controller_path":"blob"};gon.http_clone="https://gitee.com/hongfeiq/cfg.git";gon.user_project="hongfeiq/cfg";gon.manage_branch="管理分支";gon.manage_tag="管理标签";gon.enterprise_id=0;gon.create_reaction_path="/hongfeiq/cfg/reactions";gon.ipipe_base_url="https://go-api.gitee.com";gon.artifact_base_url="https://go-repo.gitee.com";gon.gitee_go_remote_url="https://go.gitee.com/assets";gon.gitee_go_active=false;gon.current_project_is_mirror=false;gon.show_repo_comment=false;gon.diagram_viewer_path="https://diagram-viewer.giteeusercontent.com";gon.ref="master";
//]]>
</script>
<script src="https://cn-assets.gitee.com/assets/static/sensor-6269b9ad61bbcdaff20078e5dcff62d5.js"></script>
<script src="https://cn-assets.gitee.com/assets/static/sentry-5.1.0-a823fb0be1b61c5d7ca4a89f0536cb0a.js"></script>
<script src="https://cn-assets.gitee.com/assets/application-7169872a7f3a9d6f6ae1a1ff8733a480.js"></script>
<script src="https://cn-assets.gitee.com/assets/lib/jquery.timeago.zh-CN-4a4818e98c1978d2419ab19fabcba740.js"></script>
<link rel="stylesheet" media="all" href="https://cn-assets.gitee.com/assets/projects/application-46b94c31ba11ae8c37eacce2bdb5603e.css" />
<script src="https://cn-assets.gitee.com/assets/projects/app-776213ecdfb7e1b62dc89d33fc0a12f0.js"></script>
<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
<script>
var title = document.title.replace(/( - Gitee| - 码云)$/, '')
imgUrl = '';
document.addEventListener('DOMContentLoaded', function(event) {
var imgUrlEl = document.querySelector('.readme-box .markdown-body > img, .readme-box .markdown-body :not(a) > img');
imgUrl = imgUrlEl && imgUrlEl.getAttribute('src');
if (!imgUrl) {
imgUrlEl = document.querySelector('meta[itemprop=image]');
imgUrl = imgUrlEl && imgUrlEl.getAttribute('content');
imgUrl = imgUrl || "https://gitee.com/static/images/logo_themecolor.png";
}
wx.config({
debug: false,
appId: "wxff219d611a159737",
timestamp: "1701527553",
nonceStr: "050cb545aba2ad86dd737f66e503634f",
signature: "e8b77c083b6cf9e566fdb33bd820129a5ff43b33",
jsApiList: [
'onMenuShareTimeline',
'onMenuShareAppMessage'
]
});
wx.ready(function () {
wx.onMenuShareTimeline({
title: title, // 分享标题
link: "https://gitee.com/hongfeiq/cfg/blob/master/jar/my_spider.jar", // 分享链接该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: imgUrl // 分享图标
});
wx.onMenuShareAppMessage({
title: title, // 分享标题
link: "https://gitee.com/hongfeiq/cfg/blob/master/jar/my_spider.jar", // 分享链接该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
desc: document.querySelector('meta[name=Description]').getAttribute('content'),
imgUrl: imgUrl // 分享图标
});
});
wx.error(function(res){
console.error('err', res)
});
})
</script>
<script type='text/x-mathjax-config'>
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']],
displayMath: [["$$","$$"],["\\[","\\]"]],
processEscapes: true,
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'],
ignoreClass: "container|files",
processClass: "markdown-body"
}
});
</script>
<script src="https://cn-assets.gitee.com/uploads/resources/MathJax-2.7.2/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script>
(function () {
var messages = {
'zh-CN': {
addResult: '增加 <b>{term}</b>',
count: '已选择 {count}',
maxSelections: '最多 {maxCount} 个选择',
noResults: '未找到结果',
serverError: '连接服务器时发生错误'
},
'zh-TW': {
addResult: '增加 <b>{term}</b>',
count: '已選擇 {count}',
maxSelections: '最多 {maxCount} 個選擇',
noResults: '未找到結果',
serverError: '連接服務器時發生錯誤'
}
}
if (messages[gon.locale]) {
$.fn.dropdown.settings.message = messages[gon.locale]
}
}());
</script>
<script>
var userAgent = navigator.userAgent;
var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;
if(isLessIE11){
var can_access = ""
if (can_access != "true"){
window.location.href = "/incompatible.html";
}
}
document.addEventListener("error", function (ev) {
var elem = ev.target;
if (elem.tagName.toLowerCase() === 'img') {
elem.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAACh0lEQVR4Ae3ch5W0OgyG4dt/mQJ2xgQPzJoM1m3AbALrxzrf28FzsoP0HykJEEAAAUQTBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEkKK0789+GK/I2ezfQB522PnS1qc8pGgXvr4tE4aY0XOUWlGImThWgyCk6DleixzE7qwBkg/MGiDPlVVAyp1VQGrPKiACDhFI6VkF5LmzCki+sg7IwDoglnVAil0IMkeG9CyUiwsxLFUVFzJJOQaKCjFCDN9RXMjIX7W6ztZXZDKKCyn8sWJvH+nca7WHDN9lROlAliPH9iRKCPI4cswFJQWxB46toLQgQ9jhn5QYZA9DOkoMUoQde5YapAxDWkoNYsOQR3KQd9CxUnIQF4S49CB9ENKlBxmDEKsFUgMCCCCAAHIrSF61f6153Ajy8nyiPr8L5MXnmm4CyT2fzN4DUvHZ+ntA2tOQBRBAAAEEEEAAAQQQ7ZBaC6TwSiDUaYHQ2yuB0MN+ft+43whyrs4rgVCjBUKTFshLC6TUAjGA3AxSaYFYLZBOC2RUAsk8h5qTg9QcbEoOsoQhQ2qQhsO5xCD5dgB5JQaZ+KBKGtKecvR81Ic0ZDjByKdDx0rSEDZ/djQbH+bkIdvfJFm98BfV8hD2zprfVdlu9PxVeyYAkciREohRAplJCaRSAplJCcQogTjSAdlyHRBvSAekJR0QRzogA+mADJkOiCPSAPEtqYBshlRAXC43hxix2QiOuEZkVERykGyNo9idIZKE0HO7XrG6OiMShlDWjstVzdPgXtUH9v0CEidAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQP4HgjZxTpdEii0AAAAASUVORK5CYII=";
}
}, true);
</script>
</head>
<body class='git-project lang-zh-CN'>
<header class='common-header fixed noborder' id='git-header-nav'>
<div class='ui container'>
<div class='ui menu header-menu header-container'>
<div class='git-nav-expand-bar'>
<i class='iconfont icon-mode-table'></i>
</div>
<div class='gitee-nav__sidebar'>
<div class='gitee-nav__sidebar-container'>
<div class='gitee-nav__sidebar-top'>
<div class='gitee-nav__avatar-box'>
<a href="/n3rddd"><img class="ui avatar image n3rddd-avatar" avatar="n3rddd-n3rddd" />
</a></div>
<div class='gitee-nav__info-box'>
<a href="/n3rddd">n3rddd</a>
</div>
</div>
<div class='gitee-nav__sidebar-middle'>
<div class='gitee-nav__sidebar-list'>
<ul>
<li class='gitee-nav__sidebar-item'>
<a href="/n3rddd"><i class='iconfont icon-ic-dashboard'></i>
<span class='gitee-nav__sidebar-name'>个人主页</span>
</a></li>
<li class='gitee-nav__sidebar-item'>
<a href="/explore"><i class='iconfont icon-ic-discover'></i>
<span class='gitee-nav__sidebar-name'>开源软件</span>
</a></li>
<li class='gitee-nav__sidebar-item'>
<a href="/enterprises"><i class='iconfont icon-ic-enterprise'></i>
<span class='gitee-nav__sidebar-name'>企业版</span>
</a></li>
<li class='gitee-nav__sidebar-item'>
<a href="/education"><i class='iconfont icon-ic-education'></i>
<span class='gitee-nav__sidebar-name'>高校版</span>
</a></li>
<li class='gitee-nav__sidebar-item split-line'></li>
<li class='gitee-nav__sidebar-item'>
<a href="/search"><i class='iconfont icon-ic-search'></i>
<span class='gitee-nav__sidebar-name'>搜索</span>
</a></li>
<li class='gitee-nav__sidebar-item'>
<a href="/help"><i class='iconfont icon-help-circle'></i>
<span class='gitee-nav__sidebar-name'>帮助中心</span>
</a></li>
<li class='gitee-nav__sidebar-item'>
<a href="/terms"><i class='iconfont icon-file'></i>
<span class='gitee-nav__sidebar-name'>使用条款</span>
</a></li>
<li class='gitee-nav__sidebar-item'>
<a href="/about_us"><i class='iconfont icon-issuepx'></i>
<span class='gitee-nav__sidebar-name'>关于我们</span>
</a></li>
<li class='gitee-nav__sidebar-item'>
<a href="/profile/account_information"><i class='iconfont icon-edit'></i>
<span class='gitee-nav__sidebar-name'>设置</span>
</a></li>
<li class='gitee-nav__sidebar-item'>
<a rel="nofollow" data-method="delete" href="/logout"><i class='iconfont icon-ic-logout'></i>
<span class='gitee-nav__sidebar-name'>
退出
</span>
</a></li>
</ul>
</div>
</div>
<div class='gitee-nav__sidebar-bottom'>
<div class='gitee-nav__sidebar-close-button'>
<i class='fa fa-angle-double-left'></i>
</div>
</div>
</div>
</div>
<!-- /todo 10周年活动结束后 恢复 -->
<div class='item gitosc-logo'>
<a href="https://gitee.com"><img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline image' height='28' src='/static/images/logo.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='95'>
<img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline black image' height='28' src='/static/images/logo-black.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='95'>
</a></div>
<a title="开源软件" class="item " href="/explore">开源软件
</a><a title="企业版" class="item " sa_evt="click_GiteeCommunity_tab_En" href="/enterprises">企业版
<sup class='ui red label'>
特惠
</sup>
</a><a title="高校版" class="item " href="/education">高校版
</a><a title="私有云" class="item" target="_blank" href="https://gitee.cn?utm_source=giteecom">私有云
</a><a title="博客" class="item" id="gitee-blog" target="_blank" href="https://blog.gitee.com/?utm_sources=site_nav">博客
</a><div class='dropdown item ui' id='my-gitee-dropdown'>
<a href="/">我的</a>
<i class='dropdown icon'></i>
<div class='menu'>
<div class='ui active dimmer inverted js-my-gitee-dropdown-loader'>
<div class='ui loader'></div>
</div>
<div class='header user-enterprises'>
<a class="pull-right" target="_blank" href="/n3rddd/dashboard/enterprises">全部</a>
企业
<span class='count'></span>
</div>
<div class='disabled item tip user-enterprises'>
无企业
</div>
<div class='header user-groups'>
<a class="pull-right" target="_blank" href="/n3rddd/dashboard/groups">全部</a>
组织
<span class='count'></span>
</div>
<div class='disabled item tip user-groups'>
无组织
</div>
<div class='header user-programs'>
项目
<span class='count'></span>
</div>
<div class='disabled item tip user-programs'>
<span class="translation_missing" title="translation missing: zh-CN.layouts.header.empty_programs">Empty Programs</span>
</div>
<div class='header user-projects'>
<a class="pull-right" target="_blank" href="/n3rddd/projects">全部</a>
仓库
<span class='count'></span>
</div>
<div class='disabled item tip user-projects'>
无项目
</div>
</div>
</div>
<div class='center responsive-logo'>
<a href="https://gitee.com"><img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline image' height='24' src='/static/images/logo.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='85'>
<img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline black image' height='24' src='/static/images/logo-black.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='85'>
</a></div>
<div class='right menu userbar right-header' id='git-nav-user-bar'>
<form class="ui item" id="navbar-search-form" data-text-require="搜索关键字不能少于1个" data-text-filter="搜索格式不正确" action="/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />
<input type="hidden" name="type" id="navbar-search-type" />
<input type="hidden" name="fork_filter" id="fork_filter" value="on" />
<div class='ui search header-search'>
<input type="text" name="q" id="navbar-search-input" value="" class="prompt" placeholder="搜开源" />
</div>
</form>
<script>
var can_search_in_repo = 1,
repo = "VFhwRmQwNUVUWGxPVkU1b1RucFplbHBuUFQxaE56WXpaZz09YTc2M2Y=",
reponame = "hongfeiq/cfg";
$(function() {
var $search = $('#navbar-search-form .ui.search');
$search.search({
apiSettings: {
url: '/search/relative_project?q={query}',
onResponse: function (res) {
if (res && res.status === 200 && res.data) {
var query = htmlSafe($search.search('get value'));
res.data.map(function (item) {
item.path_ns = '/' + item.path_ns;
item.icon = 'iconfont icon-project-public';
});
res.data.unshift({
name_ns: "在全站搜索 <b class='hl'>" + query +"</b> 相关项目",
path_ns: '/search?fork_filter=on&q=' + query,
icon: 'iconfont icon-search'
});
return res;
} else {
return { data: [] };
}
}
},
fields: {
results: 'data',
description: 'name_ns',
url: 'path_ns',
icon: 'icon'
},
minCharacters: 1,
maxResults: 10,
searchDelay: 250,
showNoResults: false,
transition: 'fade'
});
});
</script>
<div class='item ui dropdown empty' data-count-path='/notifications/unread_count' data-enable data-mark-notice-path='/notifications/mark' id='notice-dropdown'>
<a class="remind-button" href="/notifications"><i class='iconfont icon-remind'></i>
<div class='notice-count total'></div>
</a><div class='notice-dropdown-panel menu'>
<div class='notice-dropdown-panel-header'>
<div class='tab active' data-data-path='/notifications/notices?scope=referer' data-html-path='/notifications/referer' data-scope='referer'>
<div class='content'>
@ 我
<div class='notice-count referer'></div>
</div>
</div>
<div class='tab' data-data-path='/notifications/notices?scope=infos' data-html-path='/notifications/infos' data-scope='infos'>
<div class='content'>
通知
<div class='notice-count infos'></div>
</div>
</div>
<div class='tab' data-data-path='/notifications/notices?scope=messages' data-html-path='/notifications/messages' data-scope='messages'>
<div class='content'>
私信
<div class='notice-count messages'></div>
</div>
</div>
</div>
<div class='item notice-dropdown-panel-container'>
<div class='ui dimmer over active'>
<div class='ui loader'></div>
</div>
<div class='notice-list'></div>
<div class='notice-dropdown-panel-blank'>
暂没有新消息
</div>
</div>
<div class='notice-dropdown-panel-footer'>
<div class='action'>
<div class='side left'>
<a class="mark-notices" href="javascript: void(0);">当前标记为已读
</a></div>
<div class='side right'>
<a class="load-all" target="_blank" href="javascript: void(0);">查看全部
</a></div>
</div>
</div>
</div>
</div>
<div class='ui item' id='feature-update-notice'>
<div class='notice-update-icon'>
<a class="notice-update-popup click-knowed" title="" href="javascript:void(0)"><img alt="功能更新" title="" class="bubl_icon bubl-off-icon" src="https://cn-assets.gitee.com/assets/bulb_off-24ee940be20998aace89a3f040cbc704.svg" />
<img alt="功能更新" title="" class="bubl_icon bubl-on-icon" src="https://cn-assets.gitee.com/assets/bulb_on-3986b1dc417285398e3d15671bd8f261.svg" />
</a></div>
<div class='feature-update-notice-panel menu'>
<div class='notice-img'>
<img alt="" title="" class="notice-img-show" src="" />
</div>
<div class='notice-update-title'></div>
<div class='notice-update-des'></div>
<div class='notice-btn-list d-flex-between'>
<button name="button" type="button" class="ui basic orange button btn-notice btn-knowed click-knowed" style="margin-right: 0">我知道了</button>
<a class="ui button orange btn-notice btn-details click-knowed" target="_blank" href="">查看详情</a>
</div>
</div>
</div>
<div class='ui dropdown link item' id='git-nav-create'>
<i class='iconfont icon-add-thin'></i>
<div class='right menu'>
<a class="item" href="/projects/new"><i class='add square icon'></i>
新建仓库
</a><a class="item" href="/n3rddd/codes/new"><i class='code icon'></i>
发布代码片段
</a><a class="item" href="/organizations/new"><i class='group icon'></i>
创建组织
</a><a class="item" sa_evt="click_GiteeCommunity_tab_plus_EnSignup" href="/enterprises/new"><i class='icon iconfont icon-enterprise'></i>
开通企业版
</a><a class="item" href="/projects/import/url"><i class='github icon'></i>
从 GitHub / GitLab 导入仓库
</a></div>
</div>
<div class='ui dropdown item' id='git-nav-user'>
<img class="ui avatar image" avatar="n3rddd-n3rddd" />
<i class='dropdown icon'></i>
<div class='right menu'>
<a class="item" href="/n3rddd"><i class='iconfont icon-ic-home'></i>
个人主页
</a><a class="item" href="/n3rddd/starred"><i class='iconfont icon-star'></i>
我的星选集
</a><a class="item" sa_evt="recommenderClick" sa_click_location="头像-成为推荐官" href="/profile/cps/overview"><img src="https://cn-assets.gitee.com/assets/cps_icon-9c17338b5d65451ce5190ddb75fce3c7.svg" alt="Cps icon" />
成为推荐官
</a><a class="item" href="/profile/account_information"><div class='mayun-icon my-ic-edit my-ic-edit-dims'></div>
设置
</a><div class='divider'></div>
<a class="item" target="_blank" href="https://help.gitee.com"><div class='mayun-icon my-ic-help my-ic-help-dims'></div>
帮助
</a><div class='divider'></div>
<a class="item destroy-user-session" rel="nofollow" data-method="delete" href="/logout"><div class='mayun-icon my-ic-exit my-ic-exit-dims'></div>
退出
</a></div>
</div>
<script>
$('.destroy-user-session').on('click', function() {
$.cookie('access_token', null, { path: '/' });
})
</script>
</div>
</div>
</div>
</header>
<script>
Gitee.initNavbar()
Gitee.initRepoRemoteWay()
$.cookie('user_locale',null)
</script>
<script>
var userAgent = navigator.userAgent;
var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;
if(isLessIE11){
var can_access = ""
if (can_access != "true"){
window.location.href = "/incompatible.html";
}
}
</script>
<div class='fixed-notice-infos'>
<div class='all-messages'>
<div class='ui info message' id='git-bulletin'>
<a href=https://hdxu.cn/klbL4 target='_blank'>12 月 9 日,「源创会」珠海站,一起探讨 AI 时代的技术革命</a>
<i class='icon remove' id='remove-bulletin'></i>
</div>
</div>
<div class='ui container'>
<div class='flash-messages' id='messages-container'></div>
</div>
<script>
(function() {
$(function() {
var $error_box, alertTip, notify_content, notify_options, template;
template = '<div data-notify="container" class="ui {0} message" role="alert">' + '<i data-notify="dismiss" class="close icon"></i>' + '<span data-notify="message">{2}</span>' + '</div>';
notify_content = null;
notify_options = {};
alertTip = '';
$error_box = $(".flash_error.flash_error_box");
if (notify_options.type === 'error' && $error_box.length > 0 && !$.isEmptyObject(notify_content.message)) {
if (notify_content.message === 'captcha_fail') {
alertTip = "验证码不正确";
} else if (notify_content.message === 'captcha_expired') {
alertTip = "验证码已过期,请点击刷新";
} else if (notify_content.message === 'not_found_in_database') {
alertTip = "帐号或者密码错误";
} else if (notify_content.message === 'not_found_and_show_captcha') {
alertTip = "帐号或者密码错误";
} else if (notify_content.message === 'phone_captcha_fail') {
alertTip = "手机验证码不通过";
} else {
alertTip = notify_content.message;
}
return $error_box.html(alertTip).show();
} else if (notify_content) {
if ("show" === 'third_party_binding') {
return $('#third_party_binding-message').html(notify_content.message).addClass('ui message red');
}
notify_options.delay = 3000;
notify_options.template = template;
notify_options.offset = {
x: 10,
y: 30
};
notify_options.element = '#messages-container';
return $.notify(notify_content, notify_options);
}
});
}).call(this);
</script>
</div>
<script>
(function() {
$(function() {
var setCookie;
setCookie = function(name, value) {
$.cookie(name, value, {
path: '/',
expires: 365
});
};
$('#remove-bulletin, #remove-bulletin-dashboard').on('click', function() {
setCookie('remove_bulletin', "gitee-maintain-1700621498");
$('#git-bulletin').hide();
});
$('#remove-member-bulletin').on('click', function() {
setCookie('remove_member_bulletin', "gitee_member_bulletin");
$(this).parent().hide();
});
return $('#remove-gift-bulletin').on('click', function() {
setCookie('remove_gift_bulletin', "gitee-gift-bulletin");
$(this).parent().hide();
});
});
}).call(this);
</script>
<script>
function closeMessageBanner(pthis, type, val) {
var json = {}
val = typeof val === 'undefined' ? null : val
$(pthis).parent().remove()
if (type === 'out_of_enterprise_member') {
json = {type: type, data: val}
} else if (type === 'enterprise_overdue') {
json = {type: type, data: val}
}
$.post('/profile/close_flash_tip', json)
}
</script>
<div class='site-content'>
<div class='git-project-header'>
<div class='fixed-notice-infos'>
<div class='ui info icon floating message green' id='fetch-ok' style='display: none'>
<div class='content'>
<div class='header status-title'>
<i class='info icon status-icon'></i>
代码拉取完成,页面将自动刷新
</div>
</div>
</div>
<div class='ui info icon floating message error' id='fetch-error' style='display: none'>
<div class='content'>
<div class='header status-title'>
<i class='info icon status-icon'></i>
<span class='error_msg'></span>
</div>
</div>
</div>
</div>
<div class='ui container'>
<div class='git-project-header-details'>
<div class='git-project-header-container'>
<div class='git-project-header-actions'>
<div class='ui tiny modal project-donate-modal' id='project-donate-modal'>
<i class='iconfont icon-close close'></i>
<div class='header'>捐赠</div>
<div class='content'>
该仓库未开启捐赠功能,可发送私信通知作者开启
</div>
<div class='actions'>
<a class='ui blank button cancel'>取消</a>
<a class='ui orange ok button' href='/notifications/messages/7760943?donate_project=hongfeiq%2Fcfg'>发送私信</a>
</div>
</div>
<div class='ui small modal wepay-qrcode'>
<i class='iconfont icon-close close'></i>
<div class='header'>
扫描微信二维码支付
<span class='wepay-cash'></span>
</div>
<div class='content weqcode-center'>
<img id='wepay-qrcode' src=''>
</div>
<div class='actions'>
<div class='ui cancel blank button'>取消</div>
<div class='ui ok orange button'>支付完成</div>
</div>
</div>
<div class='ui mini modal' id='confirm-alipay-modal'>
<div class='header'>支付提示</div>
<div class='content'>
将跳转至支付宝完成支付
</div>
<div class='actions'>
<div class='ui approve orange button'>确定</div>
<div class='ui blank cancel button'>取消</div>
</div>
</div>
<span class='ui buttons basic watch-container'>
<div class='ui dropdown button js-project-watch' data-watch-type='unwatch'>
<input type='hidden' value=''>
<i class='iconfont icon-watch'></i>
<div class='text'>
Watch
</div>
<i class='dropdown icon'></i>
<div class='menu'>
<a data-value="unwatch" class="item" data-remote="true" rel="nofollow" data-method="post" href="/hongfeiq/cfg/unwatch"><i class='iconfont icon-msg-read'></i>
不关注
</a><a data-value="watching" class="item" data-remote="true" rel="nofollow" data-method="post" href="/hongfeiq/cfg/watch"><i class='iconfont icon-msg-read'></i>
关注所有动态
</a><a data-value="releases_only" class="disabled item" data-remote="true" rel="nofollow" data-method="post" href="/hongfeiq/cfg/release_only_watch"><i class='iconfont icon-msg-read'></i>
仅关注版本发行动态
</a><a data-value="ignoring" class="item" data-remote="true" rel="nofollow" data-method="post" href="/hongfeiq/cfg/ignoring_watch"><i class='iconfont icon-msg-read'></i>
关注但不提醒动态
</a></div>
</div>
<style>
.js-project-watch .text .iconfont {
display: none; }
.js-project-watch a, .js-project-watch a:hover {
color: #000; }
.js-project-watch .item > .iconfont {
visibility: hidden;
margin-left: -10px; }
.js-project-watch .selected .iconfont {
visibility: visible; }
.js-project-watch .menu {
margin-top: 4px !important; }
</style>
<script>
$('.js-project-watch').dropdown({
action: 'select',
onChange: function(value, text, $selectedItem) {
var type = value === 'unwatch' ? 'Watch' : 'Watching';
$(this).children('.text').text(type);
$(this).dropdown('set selected', value)
}
});
</script>
<a class="ui button action-social-count" title="1" href="/hongfeiq/cfg/watchers">1
</a></span>
<span class='basic buttons star-container ui'>
<a class="ui button unstar " sa_evt="clickStar" sa_location="其他" sa_url="" sa_repo_id="31043253" data-remote="true" rel="nofollow" data-method="post" href="/hongfeiq/cfg/unstar"><i class='iconfont icon-star-solid'></i>
Starred
</a><a class="ui button star " sa_evt="clickStar" sa_location="其他" sa_url="" sa_repo_id="31043253" data-remote="true" rel="nofollow" data-method="post" href="/hongfeiq/cfg/star"><i class='iconfont icon-star'></i>
Star
</a><a class="ui button action-social-count " title="0" href="/hongfeiq/cfg/stargazers">0
</a></span>
<span class='ui basic buttons fork-container' title=''>
<a id="fork-top-button" class="ui button fork " sa_evt="repoFork" sa_repo_id="31043253" sa_is_self="false" sa_is_member="false" href="#"><i class='iconfont icon-fork'></i>
Fork
</a><a class="ui button action-social-count " title="1" href="/hongfeiq/cfg/members">1
</a></span>
</div>
<h2 class='git-project-title mt-0 mb-0'>
<span class="project-title"><i class="project-icon iconfont icon-project-public" title="这是一个公开仓库"></i> <a title="HongFei" class="author" href="/hongfeiq">HongFei</a> / <a title="cfg" class="repository" target="" style="padding-bottom: 0px; margin-right: 4px" sa_evt="repoClick" sa_location="其他" sa_url="" sa_repo_id="31043253" href="/hongfeiq/cfg">cfg</a></span><span class="project-badges"><style>
.gitee-modal {
width: 500px !important; }
</style>
</span>
<input type="hidden" name="project_title" id="project_title" value="HongFei/cfg" />
</h2>
</div>
</div>
</div>
<div class='ui small modal long' id='modal-fork-project'>
<i class='icon-close iconfont close'></i>
<div class='header'>
Fork 仓库
</div>
<div class='content fork-project-content'>
<div class='fork-info-content'>
<div class='ui segment fork_project_loader'>
<div class='ui active inverted dimmer'>
<div class='ui text loader'>加载中</div>
</div>
</div>
</div>
</div>
<div class='actions fork-action d-flex-between hide'>
<div>
</div>
<div>
<a class='cancel'>&emsp;取消&emsp;</a>
<div class='ui disabled button orange ok'>&emsp;确认&emsp;</div>
</div>
</div>
</div>
<script>
var title_import_url = "false";
var title_post_url = "/hongfeiq/cfg/update_import";
var title_fork_url = "/hongfeiq/cfg/sync_fork";
var title_project_path = "cfg";
var title_p_name = "cfg";
var title_p_id= "31043253";
var title_description = "自用维护使用,请勿传播";
var title_form_authenticity_token = "ZJSI9ed/xFjpPzJrcFyL3qE4uEMXJYseRTpgR9QQppL3RE0Js4A0Vd2hkWo1sCnGUqBsaq9IpTWoP1YMf1wdjg==";
var watch_type = "unwatch";
var checkFirst = false;
$('.js-project-watch').dropdown('set selected', watch_type);
$('.checkbox.sync-wiki').checkbox();
$('.checkbox.sync-prune').checkbox();
$('.checkbox.team-member-checkbox').checkbox();
</script>
<script>
$(function () {
// SemticUI 校验表单等地方要求直接return 值, 对异步支持非常不友好...
// 从提交表单处 再用异步校验 ,控制是否提交
var $modalFork = $('#modal-fork-project');
var $okBtn = $modalFork.find('.ui.ok.button');
var $currentTarget = null;
var isSameProject = false;
$('#fork-top-button, #fork-btm-button').on('click', function (e) {
e.preventDefault();
$modalFork.modal('show');
setTimeout(function () {
$.ajax({ url: '/hongfeiq/cfg/fork_project_info' }).done(function () {
// 自定义错误消息模板, inline : true 每个输入框后面都插入消息提示, 而非集中到一处提醒
$.fn.form.settings.templates.prompt = function (errors) {
return $('<div />').addClass('ui error message custom prompt label').html(errors[0]);
};
// 表单的内容是异步传输的js动态生成的....
var $repoForm = $('#modal-fork-project .repo-form');
$repoForm.form({
on: 'change',
inline: true,
fields: {
projectName: {
identifier: 'project-name',
rules: [
{
type: 'empty',
prompt: "仓库名不能为空"
},
{
type: 'regExp',
value: window.giteeRegex.projectName,
prompt: "仓库名只允许包含中文、字母、数字或者下划线(_)、中划线(-)、英文句号(.)、加号(+),必须以字母、数字或者点(.)开头,不能以下划线/中划线结尾且长度为2~191个字符"
},
{
type: 'maxLength[255]',
prompt: "仓库名只允许包含中文、字母、数字或者下划线(_)、中划线(-)、英文句号(.)、加号(+),必须以字母、数字或者点(.)开头,不能以下划线/中划线结尾且长度为2~191个字符"
}
]
},
projectPath: {
identifier: 'project-path',
rules: [
{
type: 'empty',
prompt: "路径不能为空"
},
{
type: 'regExp',
value: window.giteeRegex.projectPath,
prompt: "路径只允许包含字母、数字或者下划线(_)、中划线(-)、英文句号(.),必须以字母、数字或者点(.)开头且长度为2~191个字符"
}
]
}
}
});
$modalFork.find('.namespace-img-area.ui.checkbox').checkbox({
onChecked: function () {
$currentTarget = $(this).closest('.ui.checkbox');
// 当前选中的空间
isSameProject = $currentTarget[0].hasAttribute('data-any-same-projects');
var conflictProjectName = $currentTarget.data('conflict-project-title');
var conflictProjectUrl = $currentTarget.data('conflict-project-url');
var conflictProjectNameSpacePath = $currentTarget.data('conflict-namespace');
var conflictPathType = $currentTarget.find('.path-type').text();
// fork目标
var targetProjectName = $currentTarget.data('target-project-name');
var targetProjectPath = $currentTarget.data('target-project-path');
// 命名空间名称(@xxx)
var conflictNameSpaceName = $currentTarget.find('.path-name').text();
var $forkTargetNamespace = $('.fork-target-namespace-area');
var $forkTargetNamespaceItem = $(this).closest('.fork-target-namespace-item')
// 冲突 显示修改表单
if (isSameProject) {
//$forkTargetNamespace.addClass('same-name-editing');
$('.fork-target-namespace-item').removeClass('same-name-editing')
$forkTargetNamespaceItem.addClass('same-name-editing')
$forkTargetNamespace
.find('.conflict-namespace-name')
.attr('href', `/${conflictProjectNameSpacePath}`)
.text(conflictNameSpaceName);
$forkTargetNamespace
.find('.conflict-path')
.attr('href', `${conflictProjectUrl}`)
.text(`${conflictProjectNameSpacePath}/${targetProjectPath}`);
$forkTargetNamespace
.find('.prefix-path')
.text(`${window.location.origin}/${conflictProjectNameSpacePath}/`);
$forkTargetNamespace
.find('.conflict-path-type')
.text(conflictPathType.toLowerCase())
var $nameInput = $forkTargetNamespace.find('[name="project-name"]');
var $pathInput = $forkTargetNamespace.find('[name="project-path"]');
$nameInput.val(targetProjectName);
$pathInput.val(targetProjectPath);
checkFirst = true
// 立即校验一次
asyncValidateForkRepoForm();
} else {
$('.fork-target-namespace-item').removeClass('same-name-editing')
$forkTargetNamespaceItem.addClass('same-name-editing');
}
$okBtn.removeClass('disabled');
}
});
});
}, 500);
});
// 异步校验
function asyncValidateForkRepoForm (successCallback) {
var $repoForm = $('#modal-fork-project .same-name-editing .repo-form');
var $forkTargetNamespace = $('.fork-target-namespace-area .same-name-editing');
var $nameInput = $forkTargetNamespace.find('[name="project-name"]');
var $pathInput = $forkTargetNamespace.find('[name="project-path"]');
var name = $nameInput.val().trim();
var path = $pathInput.val().trim();
var namespace = $currentTarget ? $currentTarget.data('conflict-namespace') : '';
if (!name || !path) return;
$okBtn.addClass('loading');
$.ajax('/projects/check_fork_form', {
type: 'get',
data: { project_name: name, project_path: path, target_namespaces: namespace },
success: function (data) {
if (data.status == 0) {
successCallback && successCallback();
} else if (data.status == -1 && Array.isArray(data.conflict_keys)) {
if (!checkFirst) {
data.conflict_keys.includes('name') && $repoForm.form('add prompt', 'project-name', "已存在相同仓库名");
data.conflict_keys.includes('path') && $repoForm.form('add prompt', 'project-path', "已存在相同路径");
} else {
data.conflict_keys.includes('name') && data.new_name && $nameInput.val(data.new_name);
data.conflict_keys.includes('path') && data.new_path && $pathInput.val(data.new_path);
}
} else {
Flash.error("校验失败");
}
checkFirst = false
},
error: function (err) {
Flash.error(err.responseJSON.message);
},
complete: function () {
$okBtn.removeClass('loading');
// 添加提示 弹窗变高后 刷新弹窗位置
$modalFork.modal('refresh');
}
});
}
function forkSubmit () {
$modalFork.modal('hide');
// 构造一些 input 用于表单提交
var $form = $('<form></form>');
var $input = $('<input type="hidden" name="authenticity_token" />');
var $inputCheck = $('<input type="hidden" name="members" />');
var $inputCheck2 = $('<input type="hidden" name="namespace_path" />');
var checkedPath = $('.checkbox.checked > input[name=namespace_path]').val();
// fork存在冲突, 修改后的表单:
if (isSameProject) {
// 获取最新表单数据
var $forkTargetNamespace = $('.fork-target-namespace-area .same-name-editing');
var name = $forkTargetNamespace.find('[name="project-name"]').val().trim();
var path = $forkTargetNamespace.find('[name="project-path"]').val().trim();
var $projectName = $('<input type="hidden" name="name" />');
var $projectPath = $('<input type="hidden" name="path" />');
$projectName.val(name);
$projectPath.val(path);
$form.append($projectName);
$form.append($projectPath);
}
$form.hide();
$form.attr('method', 'post');
$form.attr('action', '/' + checkedPath + '/fork_project/hongfeiq%2Fcfg');
$input.attr('value', $('meta[name="csrf-token"]').attr('content'));
$inputCheck.attr('value', $('.checkbox.checked > input[name=members]').val());
$inputCheck2.attr('value', checkedPath);
$form.append($input);
$form.append($inputCheck);
$form.append($inputCheck2);
$form.appendTo('body');
$form.submit();
}
$modalFork.modal({
transition: 'fade',
closable: true,
centered: false,
observeChanges:true,
onApprove: function () {
// 存在同名冲突时, 需要修改仓库信息, 再进行校验同名
// 判断当前选中的空间类型, 用于决定是否需要修改路径仓库名,验证表单
if (isSameProject) {
var $repoForm = $('#modal-fork-project .same-name-editing .repo-form');
$repoForm.form('validate form');
var isRepoInfoValid = $repoForm.form('is valid'); // 前端校验通过
// 由于是form提交和ajax检测结合..., 防止意外篡改 提交前必定校验一次, 通过后自动submit
if (isRepoInfoValid) {
// SemticUI add prompt 自定义验证连续执行太快, 会消失掉重复再出现再消失.
setTimeout(function () {
asyncValidateForkRepoForm(function () {
forkSubmit();
});
}, 200);
} else {
$repoForm.form('validate form');
}
} else {
// 正常 frok
forkSubmit();
}
return false;
}
});
$modalFork.find('.close-button').on('click', function () {
$modalFork.modal('hide');
});
});
</script>
<style>
i.loading, .icon-sync.loading {
-webkit-animation: icon-loading 1.2s linear infinite;
animation: icon-loading 1.2s linear infinite;
}
.qrcode_cs {
float: left;
}
.check-sync-wiki {
float: left;
height: 28px;
line-height: 28px;
}
.sync-wiki-warn {
color: #e28560;
}
</style>
<div class='git-project-nav'>
<div class='ui container'>
<div class='ui secondary pointing menu'>
<a class="item active" href="/hongfeiq/cfg"><i class='iconfont icon-code'></i>
代码
</a><a class="item " href="/hongfeiq/cfg/issues"><i class='iconfont icon-task'></i>
Issues
<span class='ui mini circular label'>
0
</span>
</a><a class="item " href="/hongfeiq/cfg/pulls"><i class='iconfont icon-pull-request'></i>
Pull Requests
<span class='ui mini circular label'>
0
</span>
</a><a class="item " href="/hongfeiq/cfg/wikis"><i class='iconfont icon-wiki'></i>
Wiki
</a><a class="item " href="/hongfeiq/cfg/graph/master"><i class='iconfont icon-statistics'></i>
统计
</a><a class="item " href="/hongfeiq/cfg/gitee_go"><i class='iconfont icon-workflow'></i>
流水线
</a><div class='item'>
<div class='ui pointing top right dropdown git-project-service'>
<div>
<i class='iconfont icon-service'></i>
服务
<i class='dropdown icon'></i>
</div>
<div class='menu' style='display:none'>
<a class="item" href="/hongfeiq/cfg/pages"><img src="/static/images/logo-en.svg" alt="Logo en" />
<div class='item-title'>
Gitee Pages
</div>
</a><a class="item" href="/hongfeiq/cfg/javadoc"><img src="https://cn-assets.gitee.com/assets/maven-bd58aee84f266d64d4b8ce5b006a9fcf.png" alt="Maven" />
<div class='item-title'>
JavaDoc
</div>
</a><a class="item" href="/hongfeiq/cfg/phpdoc"><img src="https://cn-assets.gitee.com/assets/phpdoc-a99f87c2feaa2fd99e5065377a39487e.png" alt="Phpdoc" />
<div class='item-title'>
PHPDoc
</div>
</a><a class="item" href="/hongfeiq/cfg/quality_analyses?platform=sonar_qube"><img src="https://cn-assets.gitee.com/assets/sonar_mini-5e1b54bb9f6c951d97fb778ef623afea.png" alt="Sonar mini" />
<div class='item-title'>
质量分析
</div>
</a><a class="item" href="/hongfeiq/cfg/gitee_scans"><img src="https://cn-assets.gitee.com/assets/giteescan-cd9ab4076bd751faf7e30888eb10f782.png" alt="Giteescan" />
<div class='item-title'>Gitee Scan</div>
</a><a class="item" target="_blank" href="https://gitee.com/help/articles/4193"><img src="https://cn-assets.gitee.com/assets/jenkins_for_gitee-554ec65c490d0f1f18de632c48acc4e7.png" alt="Jenkins for gitee" />
<div class='item-title'>
Jenkins for Gitee
</div>
</a><a class="item" target="_blank" href="https://gitee.com/help/articles/4318"><img src="https://cn-assets.gitee.com/assets/cloudbase-1197b95ea3398aff1df7fe17c65a6d42.png?20200925" alt="Cloudbase" />
<div class='item-title'>
腾讯云托管
</div>
</a><a class="item" target="_blank" href="https://gitee.com/help/articles/4330"><img src="https://cn-assets.gitee.com/assets/cloud_serverless-686cf926ced5d6d2f1d6e606d270b81e.png" alt="Cloud serverless" />
<div class='item-title'>
腾讯云 Serverless
</div>
</a><a class="item" href="/hongfeiq/cfg/open_sca"><img src="https://cn-assets.gitee.com/assets/open_sca/logo-9049ced662b2f9936b8001e6f9cc4952.png" alt="Logo" />
<div class='item-title'>
悬镜安全
</div>
</a><a class="item" target="_blank" href="https://help.gitee.com/devops/connect/Aliyun-SAE"><img src="https://cn-assets.gitee.com/assets/SAE-f3aa9366a1e2b7fff4747402eb8f10c3.png" alt="Sae" />
<div class='item-title'>
阿里云 SAE
</div>
</a><a class="item" id="update-codeblitz-link" target="_blank" href="https://codeblitz.cloud.alipay.com/gitee/hongfeiq/cfg/tree/master/jar/my_spider.jar"><img style="width:100px;margin-top:4px" src="https://cn-assets.gitee.com/assets/Codeblitz-8824e38875a106e16e29ff57ec977b08.png" alt="Codeblitz" />
<div class='item-title'>
Codeblitz
</div>
</a><button class='ui orange basic button quit-button' id='quiting-button'>
我知道了,不再自动展开
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$('.git-project-nav .ui.dropdown').dropdown({ action: 'nothing' });
var gitee_reward_config = JSON.parse(localStorage.getItem('gitee_reward_config') || null) || false
var $settingText = $('.setting-text')
// 如果没有访问过
if(!gitee_reward_config) $settingText.addClass('red-dot')
$('.git-project-service').dropdown({
on: 'click',
action: 'nothing',
onShow: function () {
const branch = 'master'
let newUrl = `https://codeblitz.cloud.alipay.com/gitee/hongfeiq/cfg/tree/`
const url = decodeURIComponent(window.location.pathname);
const startIndex = url.indexOf('master');
if (startIndex !== -1) {
newUrl = newUrl + url.substring(startIndex); // 从分支名开始截取
}else{
newUrl = newUrl + branch
}
const linkElement = document.getElementById("update-codeblitz-link");
linkElement.setAttribute("href", newUrl);
},
})
</script>
<style>
.git-project-nav i.checkmark.icon {
color: green;
}
#quiting-button {
display: none;
}
.git-project-nav .dropdown .menu.hidden:after {
visibility: hidden !important;
}
</style>
<script>
isSignIn = true
isClickGuide = true
$('#git-versions.dropdown').dropdown();
$.ajax({
url:"/hongfeiq/cfg/access/add_access_log",
type:"GET"
});
$('#quiting-button').on('click',function() {
$('.git-project-service').click();
if (isSignIn) {
$.post("/projects/set_service_guide")
}
$.cookie("Serve_State", true, { expires: 3650, path: '/'})
$('#quiting-button').hide();
});
if (!(isClickGuide || $.cookie("Serve_State") == 'true')) {
$('.git-project-service').click()
$('#quiting-button').show()
}
</script>
</div>
<div class='ui container'>
<div class='git-project-content-wrapper'>
<div class='ui grid' id='project-wrapper'>
<div class='sixteen wide column'>
<div class='git-project-content' id='git-project-content'>
<div class='row'>
<div class='git-project-desc-wrapper'>
<div class='ui yellow message no-license' id='user-no-license-message'>
<div class='float-left' style='width: 95%;'>
该仓库未声明开源许可证文件LICENSE使用请关注具体项目描述及其代码上游依赖。
<i class='help circle icon'></i>
<div class='ui popup dark'>
项目仓库所选许可证以仓库主分支所使用许可证为准
</div>
</div>
<i class='remove icon' id='remove-no-license-message'></i>
<div class='clearfix'></div>
</div>
<script>
$('.git-project-desc-wrapper .ui.dropdown').dropdown();
if (false) {
gon.project_new_blob_path = "/hongfeiq/cfg/new/master/jar/my_spider.jar"
bindShowModal({
el: $('.no-license .project-license__create'),
complete: function(data, modal) {
if (!data.haveNoChoice && !data.data) {
Flash.show('请选择一项开源许可证')
} else {
location.href = gon.project_new_blob_path + '?license=' + data.data
}
},
skip: function () {
location.href = gon.project_new_blob_path + '?license'
}
});
}
$(".project-admin-action-box .reject").click(function() {
var reason = $('[name=review-reject-reason]').val();
if (!reason) {
Flash.error('请选择不通过理由')
return
}
$.ajax({
type: 'POST',
url: "/admin/shumei_content/shumei_check/reject_project_public",
data: {
reason: reason,
status: 'rejected',
project_id: 31043253
},
success: function(result){
if(result.status == 'success'){
window.location.reload();
}else{
Flash.error(result.message)
}
}
})
})
$(".project-admin-action-box .approve").click(function(){
$.ajax({
type: 'POST',
url: "/admin/shumei_content/shumei_check/reject_project_public",
data: {
status: 'approved',
project_id: 31043253
},
success: function(result){
if(result.status == 'success'){
window.location.reload();
}else{
Flash.error(result.message)
}
}
})
})
$(".project-admin-action-box .waiting").click(function(){
$.ajax({
type: 'POST',
url: "/admin/shumei_content/shumei_check/reject_project_public",
data: {
status: 'waiting',
project_id: 31043253
},
success: function(result){
if(result.status == 'success'){
window.location.reload();
}else{
Flash.error(result.message)
}
}
})
})
$('i.help.circle.icon').popup({
popup: '.no-license .ui.popup',
position: 'right center'
});
$('#remove-no-license-message').on('click', function() {
$.cookie("skip_repo_no_license_message_31043253", 'hide', { expires: 365 });
$('#user-no-license-message').hide();
return;
});
</script>
</div>
</div>
<div class='git-project-bread' id='git-project-bread'>
<div class='ui horizontal list mr-1'>
<div class='item git-project-branch-item'>
<input type="hidden" name="path" id="path" value="jar/my_spider.jar" />
<div class='ui top left pointing dropdown gradient button dropdown-has-tabs' id='git-project-branch'>
<input type="hidden" name="ref" id="ref" value="master" />
<div class='default text'>
master
</div>
<i class='dropdown icon'></i>
<div class='menu'>
<div class='ui left icon input'>
<i class='iconfont icon-search dropdown-search-icon'></i>
<input class='search-branch' placeholder='搜索分支' type='text'>
</div>
<div class='tab-menu project-branch-tab-menu'>
<div class='tab-menu-action' data-tab='branches'>
<a class="ui link button" href="/hongfeiq/cfg/branches">管理</a>
</div>
<div class='tab-menu-action' data-tab='tags'>
<a class="ui link button" href="/hongfeiq/cfg/tags">管理</a>
</div>
<div class='tab-menu-item' data-placeholder='搜索分支' data-tab='branches'>
分支 (1)
</div>
</div>
<div class='tab scrolling menu' data-tab='branches' id='branches_panel'>
<div data-value="master" class="item"><span>master</span></div>
</div>
</div>
</div>
<style>
.iconfont.icon-shieldlock {
color: #8c92a4;
}
.dropdown-search-icon {
position: absolute;
top: 8px;
left: 11px;
}
</style>
<script>
var $branchesDropdown = $('#branches_panel');
var $tagsDropdown = $('#tags_panel');
var $searchNameInput = $('.search-branch');
var concurrentRequestLock = false;
var filterXSS = window.filterXSS;
var search_text = "";
var branch_page_number = 1;
var branch_total_pager = Math.ceil(1 / 20) || 1
var flag_is_loading = false;
var flag_page_number = 1;
var flag_total_pager = Math.ceil(0 / 20) || 1
$branchesDropdown.scroll(function() {
var branchesPanel = document.getElementById('branches_panel');
var numOfBranches = $branchesDropdown.children().length;
if (branchesPanel.clientHeight + branchesPanel.scrollTop + 37 > branchesPanel.scrollHeight && numOfBranches < 1) {
debounceLoadMoreBranches.call();
}
});
function resetFlagVal() {
flag_is_loading = false;
flag_page_number = 1;
flag_total_pager = 1;
concurrentRequestLock = false
search_text = "";
branch_page_number = 1;
branch_total_pager = 1
}
$searchNameInput.on('input', window.globalUtils.debouce(function (e) {
resetFlagVal()
var $currentTab = $('.tab-menu-action.active');
var numOfBranches = $branchesDropdown.children().length;
var searchWord = $searchNameInput.val().trim();
search_text = searchWord
if($currentTab.data('tab') === 'branches') {
if (searchWord !== "") {
loadData(searchWord,1);
} else {
loadData();
}
}
var numOfTags = $tagsDropdown.children().length;
if($currentTab.data('tab') === 'tags') {
if (searchWord !== "") {
fetchTags(searchWord,1);
} else {
fetchTags();
}
}
}, 500));
function toggleNoResultView($popPanel) {
let no_data_html= `<div class='mt-1 mb-1 d-flex-center'> <span>暂无数据</span> </div>`
  $popPanel.append(no_data_html)
}
var debounceLoadMoreBranches = window.globalUtils.debouce(function () {
if (concurrentRequestLock) return;
branch_page_number += 1;
if (branch_page_number > branch_total_pager) return;
loadData(search_text, branch_page_number);
}, 350);
function loadData(search, page) {
if (concurrentRequestLock) { return; }
concurrentRequestLock = true;
var searchParams = search || "";
var pageParams = page || 1;
$.ajax({
url: "/" + gon.user_project + "/branches/names.json",
type: 'GET',
data: {
search: searchParams,
page: pageParams,
},
dataType: 'json',
success: function (data) {
branch_total_pager = data.total_pages;
var html = '';
if (pageParams === 1) {
$branchesDropdown.empty();
}
data.branches.forEach(function (branch) {
var protectRule = '';
var branchName = filterXSS(branch.name);
if(branch.branch_type.value === 1) {
var rule = filterXSS(branch.protection_rule.wildcard);
protectRule = `<i
class="iconfont icon-shieldlock protected-branch-popup"
data-title="受保护分支"
data-content='保护规则: ${rule}'
>
</i>`
}
html += `<div data-value='${branchName}' class="item">
<span>${branchName}</span> ${protectRule}
</div>`
});
$branchesDropdown.append(html);
$('.protected-branch-popup').popup()
if (pageParams === 1 && data.count === 0) {
toggleNoResultView($branchesDropdown);
}
},
complete: function () {
concurrentRequestLock = false;
}
});
}
$tagsDropdown.scroll(function() {
var tagsPanel = document.getElementById('tags_panel');
var numOfTags = $tagsDropdown.children().length;
if (tagsPanel.clientHeight + tagsPanel.scrollTop + 37 > tagsPanel.scrollHeight && numOfTags < 0) {
debounceLoadMore.call();
}
});
var debounceLoadMore = window.globalUtils.debouce(function () {
if (flag_is_loading) return;
flag_page_number += 1;
if (flag_page_number > flag_total_pager) return;
fetchTags(search_text, flag_page_number);
}, 350);
function fetchTags(search, page) {
var searchParams = search || "";
var pageParams = page || 1;
if (flag_is_loading) return;
flag_is_loading = true;
$.ajax({
url: "/" + gon.user_project + "/tags/names.json",
data: {
search: searchParams,
page: pageParams,
},
type: "GET",
xhrFields: {
withCredentials: true,
},
success: function (data) {
flag_total_pager = data.total_pages;
if (pageParams === 1) {
$tagsDropdown.html('');
}
data.tags.forEach((tag) => {
const itemDiv = document.createElement('div');
itemDiv.classList.add('item');
itemDiv.setAttribute('data-value', tag.name);
itemDiv.innerText = window.filterXSS(tag.name);
$tagsDropdown.append(itemDiv)
});
if (pageParams === 1 && data.count === 0) {
toggleNoResultView($tagsDropdown);
}
},
error: function () {
},
complete: function () {
flag_is_loading = false;
},
});
}
$('.project-branch-tab-menu').on('click','.tab-menu-item', function (e) {
var $currentTab = $(this).data('tab')
if($currentTab === 'branches') {
$searchNameInput.val('')
search_text = '';
loadData()
}
if($currentTab === 'tags') {
$searchNameInput.val('')
search_text = '';
fetchTags();
}
})
</script>
<script>
$(function () {
Gitee.initTabsInDropdown($('#git-project-branch').dropdown({
fullTextSearch: true,
selectOnKeydown: false,
action: function (text,value,el) {
var oItemOrInitObject = el[0] || el
var isNotSelect = oItemOrInitObject.dataset.tab && oItemOrInitObject.dataset.tab === 'branches'
if(isNotSelect){
console.warn("You didn't choose a branch")
return
}
var path = $('#path').val();
var href = ['/hongfeiq/cfg/tree', encodeURIComponent(value), path].join('/');
window.location.href = href;
return true
},
onNoResults: function (searchTerm) {
//未找到结果
return true
},
}));
$('.protected-branch-popup').popup()
})
</script>
</div>
</div>
<div class='git-project-right-actions pull-right'>
<div class='ui orange button' id='btn-dl-or-clone'>
克隆/下载
<i class='dropdown icon'></i>
</div>
<div class='git-project-download-panel for-project ui bottom right popup'>
<div class='ui small secondary pointing menu'>
<a class='item active' data-text='' data-type='http' data-url='https://gitee.com/hongfeiq/cfg.git'>HTTPS</a>
<a class='item' data-text='' data-type='ssh' data-url='git@gitee.com:hongfeiq/cfg.git'>SSH</a>
<a class='item' data-text="该仓库未启用SVN访问请仓库管理员前往【&lt;a target='_blank' href=/hongfeiq/cfg/settings&gt;仓库设置&lt;/a&gt;】开启。" data-type='svn' data-url=''>SVN</a>
<a class='item' data-text="该仓库未启用SVN访问请仓库管理员前往【&lt;a target='_blank' href=/hongfeiq/cfg/settings&gt;仓库设置&lt;/a&gt;】开启。" data-type='svn_ssh' data-url=''>SVN+SSH</a>
</div>
<div class='ui fluid right labeled small input download-url-panel'>
<input type="text" name="project_clone_url" id="project_clone_url" value="https://gitee.com/hongfeiq/cfg.git" onclick="focus();select()" readonly="readonly" />
<div class='ui basic label'>
<div class='ui small basic orange button' data-clipboard-target='#project_clone_url' id='btn-copy-clone-url'>
复制
</div>
</div>
</div>
<div class='ui fluid right labeled warning-text forbid-warning-text'>
</div>
<hr>
<a class="ui fluid tiny download link button" sa_evt="repoDownload" sa_repo_id="31043253" sa_is_self="false" sa_is_member="false" href="/hongfeiq/cfg/repository/archive/master.zip"><i class='icon download'></i>
下载ZIP
</a></div>
<script>
(function() {
var $btnClone, $btnCopy, $input, $panel;
$btnClone = $('#btn-dl-or-clone');
$panel = $('.git-project-download-panel');
$input = $('#project_clone_url');
$btnCopy = $('#btn-copy-clone-url');
$btnClone.popup({
on: 'click',
hoverable: true,
position: 'bottom center'
});
$panel.find('.menu > .item').on('click', function(e) {
var $item, dataUrl;
$item = $(this).addClass('active');
$item.siblings().removeClass('active');
dataUrl = $item.attr('data-url');
if (dataUrl) {
$panel.find('.download-url-panel').show();
$input.val(dataUrl);
$panel.find('.forbid-warning-text').html('');
} else {
$panel.find('.download-url-panel').hide();
$panel.find('.forbid-warning-text').html($item.attr('data-text') || '');
}
return $.cookie('remote_way', $item.attr('data-type'), {
expires: 365,
path: '/'
});
}).filter('[data-type="' + ($.cookie('remote_way') || 'http') + '"]').trigger('click');
new Clipboard($btnCopy[0]).on('success', function() {
$btnCopy.popup({
content: '已复制',
position: 'right center',
onHidden: function() {
return $btnCopy.popup('destroy');
}
});
return $btnCopy.popup('show');
});
}).call(this);
</script>
</div>
<div class='d-inline pull-right' id='git-project-root-actions'>
<script>
$('.disabled-upload-readonly').popup({
content: "只读目录不允许上传文件",
className: {
popup: 'ui popup',
},
position: 'bottom center',
})
$('.disabled-create-folder').popup({
content: "只读目录不允许创建目录",
className: {
popup: 'ui popup',
},
position: 'bottom center',
})
$('.disabled-create-file').popup({
content: "只读目录不允许创建文件",
className: {
popup: 'ui popup',
},
position: 'bottom center',
})
$('.disabled-create-submodule').popup({
content: "只读目录不允许创建子模块",
className: {
popup: 'ui popup',
},
position: 'bottom center',
})
$('.disabled-upload-readonly, .disabled-create-folder, .disabled-create-file, .disabled-create-submodule').click(function() {
return false
})
</script>
<style>
.disabled-upload-readonly, .disabled-create-file, .disabled-create-folder, .disabled-create-submodule {
background-color: #dcddde !important;
color: rgba(0, 0, 0, 0.4) !important;
opacity: 0.3 !important;
background-image: none !important;
-webkit-box-shadow: none !important;
box-shadow: none !important; }
</style>
</div>
<div class='breadcrumb_path path-breadcrumb-contrainer' id='git-project-breadcrumb'>
<div class='ui breadcrumb path project-path-breadcrumb' id='path-breadcrumb'>
<a data-direction="back" class="section repo-name" style="font-weight: bold" href="/hongfeiq/cfg/tree/master">cfg
</a><div class='divider'>
/
</div>
<strong>
<a data-direction="back" class="section" href="/hongfeiq/cfg/tree/master/jar"><span class='cblue'>
jar
</span>
</a></strong>
<div class='divider'>
/
</div>
<strong>
my_spider.jar
</strong>
<i class='iconfont icon-clone' data-clipboard-text='jar/my_spider.jar' id='btn-copy-file-path'></i>
</div>
<style>
#btn-copy-file-path {
vertical-align: middle;
cursor: pointer;
}
</style>
<script>
$btnCopy = $('#btn-copy-file-path')
$btnCopy.popup({
content: '复制路径'
})
if ($btnCopy[0]) {
new Clipboard($btnCopy[0]).on('success', function() {
$btnCopy.popup('destroy').popup({
content: '已复制',
on: 'manual'
}).popup('show');
setTimeout(function () {
$btnCopy.popup('destroy').popup({
content: '复制路径'
});
}, 2000)
});
}
</script>
</div>
<div class='ui horizontal list repo-action-list branches-tags' style='display: none;'>
<div class='item'>
<a class="ui blank button" href="/hongfeiq/cfg/branches"><i class='iconfont icon-branches'></i>
分支 1
</a></div>
<div class='item mr-3'>
<a class="ui blank button" href="/hongfeiq/cfg/tags"><i class='iconfont icon-tag'></i>
标签 0
</a></div>
</div>
</div>
<script src="https://cn-assets.gitee.com/webpacks/parse_blob_form_scheme-b72b6a07c9684da96807.bundle.js"></script>
<script>
if(window.gon.locale == 'en')
$('.branches-tags').css('margin-top', '12px')
// 仓库页面切换路径时: 刷新 yaml 错误检查
$(window).on('pjax-complete:file-show', function () {
window.parseBlobFormScheme && window.parseBlobFormScheme($('.js-blob-data').data('blob'));
});
</script>
<style>
.ui.dropdown .menu > .header {
text-transform: none; }
</style>
<script>
$(function () {
var $tip = $('#apk-download-tip');
if (!$tip.length) {
return;
}
$tip.find('.btn-close').on('click', function () {
$tip.hide();
});
});
(function(){
function pathAutoRender() {
var $parent = $('#git-project-bread'),
$child = $('#git-project-bread').children('.ui.horizontal.list'),
mainWidth = 0;
$child.each(function (i,item) {
mainWidth += $(item).width()
});
$('.breadcrumb.path.fork-path').remove();
if (mainWidth > 995) {
$('#path-breadcrumb').hide();
$parent.append('<div class="ui breadcrumb path fork-path">' + $('#path-breadcrumb').html() + '<div/>')
} else {
$('#path-breadcrumb').show();
}
}
window.pathAutoRender = pathAutoRender;
pathAutoRender();
})();
</script>
<div class='row column tree-holder' id='tree-holder'>
<div class='tree-content-holder' id='tree-content-holder'>
<div class='file_holder'>
<div class='file_title'>
<div class='blob-header-title'>
<div class='blob-description'>
<i class="iconfont icon-file"></i>
<span class='file_name' title='my_spider.jar'>
my_spider.jar
</span>
<small>370.54 KB</small>
</div>
<div class='options'><div class='ui mini buttons basic'>
<a class="ui button edit-raw" target="_blank" href="/hongfeiq/cfg/raw/master/jar/my_spider.jar">原始数据</a>
<a class="ui button edit-history" href="/hongfeiq/cfg/commits/master/jar/my_spider.jar">历史</a>
</div>
<script>
"use strict";
try {
if((gon.wait_fork!=undefined && gon.wait_fork==true) || (gon.wait_fetch!=undefined && gon.wait_fetch==true)){
$('.edit-blob').popup({content:"当前仓库正在后台处理中,暂时无法编辑", on: 'hover', delay: { show: 200, hide: 200 }});
$('.edit-blob').click(function(e){
e.preventDefault();
})
}
var setUrl = function() {
var params = window.location.search
if (params==undefined || $.trim(params).length==0) return;
$('span.options').children('.basic').find('a').each(function(index,ele){
var origin_href = $(ele).attr('href');
if (origin_href!="#" && origin_href.indexOf('?') == -1){
$(ele).attr('href',origin_href+params);
}
});
}
setUrl();
var clipboard = null,
$btncopy = $("#copy-text");
clipboard = new Clipboard("#copy-text", {
text: function(trigger) {
return $("#blob_raw").val();
}
})
clipboard.on('success', function(e) {
$btncopy.popup('hide');
$btncopy.popup('destroy');
$btncopy.popup({content: '已复制', position: 'bottom center'});
$btncopy.popup('show');
})
clipboard.on('error', function(e) {
var giteeModal = new GiteeModalHelper({okText: '确定'});
giteeModal.alert("一键复制", '复制失败,请手动复制');
})
$(function() {
$btncopy.popup({
content: '点击复制',
position: 'bottom center'
})
})
} catch (error) {
console.log('blob/action error:' + error);
}
$('.disabled-edit-readonly').popup({
content: "只读文件不可编辑",
className: {
popup: 'ui popup',
},
position: 'bottom center',
})
$('.disabled-edit-readonly, .disabled-edit-status').click(function() {
return false
})
$('.has_tooltip').popup({
position: 'top center'
});
</script>
<style>
.disabled-edit-readonly, .disabled-edit-status {
background-color: #dcddde !important;
color: rgba(0, 0, 0, 0.4) !important;
opacity: 0.3 !important;
background-image: none !important;
-webkit-box-shadow: none !important;
box-shadow: none !important;
cursor: default !important; }
.drawio-iframe-code-card {
position: relative; }
.drawio-iframe-code-card textarea {
width: 100%;
height: 140px;
resize: none; }
.drawio-iframe-code-card .icon-clone {
position: absolute;
right: 32px;
bottom: 32px; }
.drawio-iframe-code-card iframe {
border-radius: 2px;
border: 1px solid #DEDEDF; }
</style>
</div>
</div>
<div class='blob-header-title mt-1 ubblock_tip'>
</div>
<div class='contributor-description'><span class='recent-commit' style='margin-top: 0.7rem'>
<a class="commit-author-link js-popover-card" data-username="null" href="mailto:tim@163.com">tim</a>
<span>提交于</span>
<span class='timeago commit-date' title='2023-12-02 21:09:06 +0800'>
2023-12-02 21:09
</span>
.
<a href="/hongfeiq/cfg/commit/b58012cee33a7861531c16e9bdfdad89780eda7b">update</a>
</span>
</div>
</div>
<div class='clearfix'></div>
<div class='file_content blob_file'>
<center>
<a href="/hongfeiq/cfg/raw/master/jar/my_spider.jar"><div class='padded'>
<h4>
<i class='icon-download-alt'></i>
<br>
下载 (370.54 KB)
</h4>
</div>
</a></center>
</div>
</div>
</div>
<div class='tree_progress'></div>
<div class='ui small modal' id='modal-linejump'>
<div class='ui custom form content'>
<div class='field'>
<div class='ui right action input'>
<input placeholder='跳转至某一行...' type='number'>
<div class='ui orange button'>
跳转
</div>
</div>
</div>
</div>
</div>
<div class='complaint'>
<div class='ui modal small form' id='landing-comments-complaint-modal'>
<i class='iconfont icon-close close'></i>
<div class='header'>
举报
</div>
<div class='content'>
<div class='appeal-success-tip hide'>
<i class='iconfont icon-ic_msg_success'></i>
<div class='appeal-success-text'>
举报成功
</div>
<span>
我们将于2个工作日内通过站内信反馈结果给你
</span>
</div>
<div class='appeal-tip'>
请认真填写举报原因,尽可能描述详细。
</div>
<div class='ui form appeal-form'>
<div class='inline field'>
<label class='left-part appeal-type-wrap'>
举报类型
</label>
<div class='ui dropdown selection' id='appeal-comments-types'>
<div class='text default'>
请选择举报类型
</div>
<i class='dropdown icon'></i>
<div class='menu'></div>
</div>
</div>
<div class='inline field'>
<label class='left-part'>
举报原因
</label>
<textarea class='appeal-reason' id='appeal-comment-reason' name='msg' placeholder='请说明举报原因' rows='3'></textarea>
</div>
<div class='ui message callback-msg hide'></div>
<div class='ui small error text message exceeded-size-tip'></div>
</div>
</div>
<div class='actions'>
<div class='ui button blank cancel'>
取消
</div>
<div class='ui orange icon button disabled ok' id='complaint-comment-confirm'>
发送
</div>
</div>
</div>
<script>
var $complaintCommentsModal = $('#landing-comments-complaint-modal'),
$complainCommentType = $complaintCommentsModal.find('#appeal-comments-types'),
$complaintModalTip = $complaintCommentsModal.find('.callback-msg'),
$complaintCommentsContent = $complaintCommentsModal.find('.appeal-reason'),
$complaintCommentBtn = $complaintCommentsModal.find('#complaint-comment-confirm'),
complaintSending = false,
initedCommentsType = false;
function initCommentsTypeList() {
if (!initedCommentsType) {
$.ajax({
url: "/appeals/fetch_types",
method: 'get',
data: {'type': 'comment'},
success: function (data) {
var result = '';
for (var i = 0; i < data.length; i++) {
result = result + "<div class='item' data-value='" + data[i].id + "'>" + data[i].name + "</div>";
}
$complainCommentType.find('.menu').html(result);
}
});
$complainCommentType.dropdown({showOnFocus: false});
initedCommentsType = true;
}
}
$complainCommentType.on('click', function() {
$complaintCommentsModal.modal({
autofocus: false,
onApprove: function() {
return false;
},
onHidden: function() {
restoreCommonentDefault();
}
}).modal('show');
});
$complaintCommentsContent.on('change keyup', function(e) {
var content = $(this).val();
if ($.trim(content).length > 0 && $complainCommentType.dropdown('get value').length > 0 ) {
$complaintCommentBtn.removeClass('disabled');
return;
}
$complaintCommentBtn.addClass('disabled');
});
$complainCommentType.dropdown({
showOnFocus: false,
onChange: function(value, text, $selectedItem) {
if (value.length > 0 && $.trim($complaintCommentsContent.val()).length > 0) {
$complaintCommentBtn.removeClass('disabled');
return
}
$complaintCommentBtn.addClass('disabled');
}
});
function restoreCommonentDefault() {
$complainCommentType.dropdown('restore defaults');
$complaintCommentsContent.val('');
$('.exceeded-size-tip').text('').hide();
$complaintModalTip.text('').hide();
setTimeout(function() {
setCommentSendTip(false);
}, 1500);
}
$complaintCommentBtn.on('click',function(e){
var reason = $complaintCommentsContent.val();
var appealableId = $('#landing-comments-complaint-modal').attr('data-id');
if (complaintSending) {
return;
}
var appealType = $complainCommentType.dropdown('get value');
var formData = new FormData();
formData.append('appeal_type_id', appealType);
formData.append('reason', reason);
formData.append('appeal_type','Note');
formData.append('target_id',appealableId);
$.ajax({
type: 'POST',
url: "/appeals",
cache: false,
contentType: false,
processData: false,
data: formData,
beforeSend: function() {
setCommentSendStatus(true);
},
success: function(res) {
if (res.status == 200) {
setCommentSendTip(true);
setTimeout(function() {
$complaintCommentsModal.modal('hide');
restoreCommonentDefault();
}, 3000);
}
setCommentSendStatus(false);
},
error: function(err) {
showCommonTips(err.responseJSON.message, 'error');
setCommentSendStatus(false);
}
})
});
function showCommonTips(text, type) {
$complaintModalTip.text(text).show();
if (type == 'error') {
$complaintModalTip.removeClass('success').addClass('error');
} else {
$complaintModalTip.removeClass('error').addClass('success');
}
}
function setCommentSendStatus(value) {
complaintSending = value;
if (complaintSending) {
$complaintCommentBtn.addClass('loading');
$complaintCommentsContent.attr('readonly', true);
$complainCommentType.attr('readonly', true);
} else {
$complaintCommentBtn.removeClass('loading');
$complaintCommentsContent.attr('readonly', false);
$complainCommentType.attr('readonly', false);
}
}
function setCommentSendTip(value) {
if (value) {
$('.appeal-success-tip').removeClass('hide');
$('.appeal-tip').addClass('hide');
$('.appeal-form').addClass('hide');
$('#landing-comments-complaint-modal .actions').addClass('hide');
} else {
$('.appeal-success-tip').addClass('hide');
$('.appeal-tip').removeClass('hide');
$('.appeal-form').removeClass('hide');
$('#landing-comments-complaint-modal .actions').removeClass('hide');
}
}
</script>
<div class='ui small modal' id='misjudgment_appeal_modal'>
<i class='close icon'></i>
<div class='header dividing ui'>
误判申诉
</div>
<div class='content'>
<p>此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。</p>
<p>如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。</p>
<div class='buttons'>
<div class='ui button blank cancel'>取消</div>
<div class='ui button orange submit'>提交</div>
</div>
</div>
</div>
<style>
#misjudgment_appeal_modal .buttons {
float: right;
margin-top: 30px;
margin-bottom: 20px; }
#misjudgment_appeal_modal .buttons .cancel {
margin-right: 20px; }
</style>
<script>
var $misjudgmentAppealModal = $('#misjudgment_appeal_modal');
$('.cancel').on('click',function(){
$misjudgmentAppealModal.modal('hide');
});
var $jsSubmitAppeal = $misjudgmentAppealModal.find('.submit')
$jsSubmitAppeal.on('click', function(e) {
e.preventDefault();
$(this).addClass('loading').addClass('disabled');
var type = $(this).attr('data-type');
var id = $(this).attr('data-id');
var projectId = $(this).attr('data-project-id');
var appealType = $(this).attr('data-appeal-type');
$.ajax({
type: "PUT",
url: "/misjudgment_appeal",
data: {
type: type,
id: id,
project_id: projectId,
appeal_type: appealType
},
success: function(data) {
Flash.info('提交成功');
$jsSubmitAppeal.removeClass('loading');
$misjudgmentAppealModal.modal('hide');
location.reload()
},
error: function(e) {
Flash.error('提交失败:'+e.responseText);
$jsSubmitAppeal.removeClass('loading').removeClass('disabled');
location.reload()
}
});
})
</script>
</div>
<script>
"use strict";
$('.js-check-star').checkbox('set unchecked')
</script>
</div>
</div>
</div>
<div class='four wide column' style='display: none;'>
<div class='project__right-side'>
<div class='side-item intro'>
<div class='header'>
<h4>简介</h4>
</div>
<div class='content'>
<span class='git-project-desc-text'>自用维护使用,请勿传播</span>
<a class='hide spread' href='javascript:void(0);'>
展开
<i class='caret down icon'></i>
</a>
<a class='retract hide' href='javascript:void(0);'>
收起
<i class='caret up icon'></i>
</a>
<div class='intro-list'>
<div class='blank d-flex d-flex-between dropdown item js-project-label_show label-list-line-feed project-label-list ui' data-labels='[]' data-url='/hongfeiq/cfg/update_description'>
<div class='mixed-label'>
</div>
<div class='default'>暂无标签</div>
</div>
<div class='hide item'>
<i class='iconfont icon-link'></i>
<span class='git-project-homepage'>
<a rel="nofollow" id="homepage" target="_blank" href=""></a>
</span>
</div>
<div class='item'>
<i class='iconfont icon-tag-program'></i>
<span class='summary-languages'>
JavaScript
<span class='text-muted'>
等 2 种语言
<i class='icon dropdown'></i>
</span>
</span>
<div class='ui popup summary-languages-popup'>
<div class='row'>
<div class='lang'>
<a href="/explore/all?lang=JavaScript">JavaScript</a>
</div>
<div class='lang-bar'>
<div class='bar' style='width: 98.1%;'></div>
</div>
<a class="percentage" href="/explore/all?lang=JavaScript">98.1%</a>
</div>
<div class='row'>
<div class='lang'>
<a href="/explore/all?lang=Python">Python</a>
</div>
<div class='lang-bar'>
<div class='bar' style='width: 1.9%;'></div>
</div>
<a class="percentage" href="/explore/all?lang=Python">1.9%</a>
</div>
</div>
</div>
</div>
</div>
<div class='content intro-form'>
<div class='ui small input'>
<textarea name='project[description]' placeholder='描述' rows='5'></textarea>
</div>
<div class='ui small input'>
<input data-regex-value='(^$)|(^(http|https):\/\/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).*)|(^(http|https):\/\/[a-zA-Z0-9]+([_\-\.]{1}[a-zA-Z0-9]+)*\.[a-zA-Z]{2,10}(:[0-9]{1,10})?(\?.*)?(\/.*)?$)' name='project[homepage]' placeholder='主页(eg: https://gitee.com)' type='text'>
</div>
<button class='ui orange button mt-1 btn-save'>
保存更改
</button>
<div class='ui blank button btn-cancel-edit'>
取消
</div>
</div>
</div>
<div class='side-item release'>
<div class='header'>
<h4>发行版</h4>
</div>
<div class='content'>
<span class='text-muted'>
暂无发行版
</span>
</div>
</div>
<div class='side-item contrib' data-url='/hongfeiq/cfg/contributors_count?ref=master' id='contributor'>
<div class='header'>
<h4>
贡献者
<span class='text-muted' id='contributor-count'></span>
</h4>
<a class="ui link button pull-right" href="/hongfeiq/cfg/contributors?ref=master">全部</a>
</div>
<div class='content' id='contributor-list'></div>
<div class='ui active centered inline loader' id='contributor-loader'></div>
</div>
<div class='side-item events' data-url='/hongfeiq/cfg/events.json' id='proj-events'>
<div class='header'>
<h4>近期动态</h4>
</div>
<div class='content'>
<div class='ui comments' id='event-list'></div>
<a class="loadmore hide" href="javascript:void(0);">加载更多
<i class='icon dropdown'></i>
</a><center>
<div class='text-muted nomore hide'>不能加载更多了</div>
<div class='ui inline loader active'></div>
</center>
</div>
</div>
</div>
<div class='ui modal tiny' id='edit-project-description'>
<i class='iconfont icon-close close'></i>
<div class='header'>编辑仓库简介</div>
<div class='content'>
<div class='item mb-2'>
<div class='title label'>简介内容</div>
<div class='ui small input'>
<textarea maxlength='200' name='project[description]' placeholder='描述' rows='5'>自用维护使用,请勿传播</textarea>
</div>
</div>
<div class='item mb-2'>
<div class='title label'>主页</div>
<div class='ui small input'>
<input data-regex-value='(^$)|(^(http|https):\/\/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).*)|(^(http|https):\/\/[a-zA-Z0-9]+([_\-\.]{1}[a-zA-Z0-9]+)*\.[a-zA-Z]{2,10}(:[0-9]{1,10})?(\?.*)?(\/.*)?$)' name='project[homepage]' placeholder='主页(eg: https://gitee.com)' type='text' value=''>
</div>
</div>
</div>
<div class='actions'>
<button class='ui button blank cancel'>取消</button>
<button class='ui button orange btn-save'>保存更改</button>
</div>
</div>
<script>
window.gon.projectRightSide = {
homepage: "",
description: "自用维护使用,请勿传播",
url: '/hongfeiq/cfg/update_description',
i18n: {
invalidHomepage: '不是有效的 http 地址',
descriptionLimitExceeded: '简介长度不得超过%{limit}个字符',
noDescription: '暂无描述',
noPermission: '无权限操作!',
requestError: '修改发生错误,请稍后重试!'
}
}
window.gon.cloneArrSelectedLabel = [] || []
$(function () {
var $editModal = $('#edit-project-description')
$editModal.modal({
onShow: function () {
window.globalUtils.getFocus($editModal.find('textarea'))
}
})
$('.project__right-side').on('click', '.header .btn-edit', function () {
$editModal.modal('show')
})
$('#license-popup').popup({ position: 'bottom center', lastResort: 'bottom center' })
$('.js-project-label_show').projectLabel({
i18n: {
empty: "标签名不能为空",
verify: "标签名只允许包含中文、字母、数字或者中划线(-)不能以中划线开头且长度少于35个字符",
max: "最多选择 5 个标签"
}
})
})
</script>
</div>
</div>
</div>
<script>
(function() {
$(function() {
Tree.init();
return TreeCommentActions.init();
});
}).call(this);
</script>
<script src="https://cn-assets.gitee.com/webpacks/gitee-linker.b5c93d77567006097fca.js"></script>
</div>
<script>
(function() {
var donateModal;
Gitee.modalHelper = new GiteeModalHelper({
alertText: '提示',
okText: '确定'
});
donateModal = new ProjectDonateModal({
el: '#project-donate-modal',
alipayUrl: '/hongfeiq/cfg/alipay',
wepayUrl: '/hongfeiq/cfg/wepay',
nameIsBlank: '名称不能为空',
nameTooLong: '名称过长(最多为 36 个字符)',
modalHelper: Gitee.modalHelper
});
if (null === 'true') {
donateModal.show();
}
$('#project-donate').on('click', function() {
return donateModal.show();
});
}).call(this);
</script>
<script>
Tree.initHighlightTheme('white')
</script>
</div>
<div class='gitee-project-extension'>
<div class='extension public'>1</div>
<div class='extension https'>https://gitee.com/hongfeiq/cfg.git</div>
<div class='extension ssh'>git@gitee.com:hongfeiq/cfg.git</div>
<div class='extension namespace'>hongfeiq</div>
<div class='extension repo'>cfg</div>
<div class='extension name'>cfg</div>
<div class='extension branch'>master</div>
</div>
<style>
.gfm-team_member[data-username="n3rddd"] {
padding: 0 4px;
background: rgba(44,126,248,0.10);
border-radius: 2px;
}
</style>
<script>
$(function() {
GitLab.GfmAutoComplete.dataSource = "/hongfeiq/cfg/autocomplete_sources"
GitLab.GfmAutoComplete.Emoji.assetBase = '/assets/emoji'
GitLab.GfmAutoComplete.setup();
});
</script>
<footer id='git-footer-main'>
<div class='ui container'>
<div class='logo-row'>
<a href="https://gitee.com"><img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='logo-img' src='/static/images/logo-black.svg?t=158106666'>
</a></div>
<div class='name-important'>
深圳市奥思网络科技有限公司版权所有
</div>
<div class='ui two column grid d-flex-center'>
<div class='nine wide column git-footer-left'>
<div class='ui four column grid' id='footer-left'>
<div class='column'>
<div class='ui link list'>
<div class='item'>
<a class="item" href="/all-about-git">Git 大全</a>
</div>
<div class='item'>
<a class="item" rel="nofollow" href="https://oschina.gitee.io/learn-git-branching/">Git 命令学习</a>
</div>
<div class='item'>
<a class="item" rel="nofollow" href="https://copycat.gitee.com/">CopyCat 代码克隆检测</a>
</div>
<div class='item'>
<a class="item" href="/appclient">APP与插件下载</a>
</div>
</div>
</div>
<div class='column'>
<div class='ui link list'>
<div class='item'>
<a class="item" href="/gitee_reward">Gitee Reward</a>
</div>
<div class='item'>
<a class="item" href="/gitee-stars">Gitee 封面人物</a>
</div>
<div class='item'>
<a class="item" href="/gvp">GVP 项目</a>
</div>
<div class='item'>
<a class="item" rel="nofollow" href="https://blog.gitee.com/">Gitee 博客</a>
</div>
<div class='item'>
<a class="item" href="/enterprises#nonprofit-plan">Gitee 公益计划</a>
</div>
<div class='item'>
<a class="item" href="https://gitee.com/features/gitee-go">Gitee 持续集成</a>
</div>
</div>
</div>
<div class='column'>
<div class='ui link list'>
<div class='item'>
<a class="item" href="/api/v5/swagger">OpenAPI</a>
</div>
<div class='item'>
<a class="item" href="https://help.gitee.com">帮助文档</a>
</div>
<div class='item'>
<a class="item" href="/self_services">在线自助服务</a>
</div>
<div class='item'>
<a class="item" href="/help/articles/4378">更新日志</a>
</div>
</div>
</div>
<div class='column'>
<div class='ui link list'>
<div class='item'>
<a class="item" href="/about_us">关于我们</a>
</div>
<div class='item'>
<a class="item" rel="nofollow" href="https://www.oschina.net/news/131099/oschina-hiring">加入我们</a>
</div>
<div class='item'>
<a class="item" href="/terms">使用条款</a>
</div>
<div class='item'>
<a class="item" href="/oschina/git-osc/issues">意见建议</a>
</div>
<div class='item'>
<a class="item" href="/links.html">合作伙伴</a>
</div>
</div>
</div>
</div>
</div>
<div class='seven wide column right aligned followus git-footer-right'>
<div class='qrcode mini_app'>
<img alt="微信小程序" src="https://cn-assets.gitee.com/assets/mini_app-e5eee5a21c552b69ae6bf2cf87406b59.jpg" />
<p class='mini_app-text'>微信小程序</p>
</div>
<div class='qrcode weixin'>
<img alt="微信服务号" src="https://cn-assets.gitee.com/assets/qrcode-weixin-9e7cfb27165143d2b8e8b268a52ea822.jpg" />
<p class='weixin-text'>微信服务号</p>
</div>
<div class='phone-and-qq column'>
<div class='ui list official-support-container'>
<div class='item'>
<a class="icon-popup" title="点击加入 Gitee 官方群" rel="nofollow" href="//qm.qq.com/cgi-bin/qm/qr?k=FOdoYurYb10aXeAiViAgsqWX0fsgykNZ"><i class='iconfont icon-logo-qq'></i>
<span>官方技术交流QQ群777320883</span>
</a></div>
<div class='item mail-and-zhihu'>
<a rel="nofollow" href="mailto: git@oschina.cn"><i class='iconfont icon-msg-mail'></i>
<span id='git-footer-email'>git#oschina.cn</span>
</a></div>
<div class='item mail-and-zhihu'>
<a target="_blank" rel="nofollow" href="https://www.zhihu.com/org/ma-yun-osc/"><i class='iconfont icon-zhihu'></i>
<span>Gitee</span>
</a></div>
<div class='item tel'>
<a>
<i class='iconfont icon-tel'></i>
<span>售前及售后使用咨询400-606-0201</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class='bottombar'>
<div class='ui container'>
<div class='ui d-flex d-flex-between'>
<div class='seven wide column partner d-flex'>
<div class='open-atom d-flex-center'>
<img class="logo-openatom mr-1" alt="开放原子开源基金会" src="https://cn-assets.gitee.com/assets/logo-openatom-d083391cc8a54e283529f3fc11cc38ca.svg" />
<a target="_blank" rel="nofollow" href="https://www.openatom.org/">开放原子开源基金会</a>
<div class='sub-title ml-1'>合作代码托管平台</div>
</div>
<div class='report-12377 d-flex-center ml-3'>
<img class="report-12377__logo mr-1" alt="违法和不良信息举报中心" src="https://cn-assets.gitee.com/assets/12377@2x-1aa42ed2d2256f82a61ecf57be1ec244.png" />
<a target="_blank" rel="nofollow" href="https://12377.cn">违法和不良信息举报中心</a>
</div>
<div class='copyright ml-3'>
<a rel="nofollow" href="http://beian.miit.gov.cn/">粤ICP备12009483号</a>
</div>
</div>
<div class='nine wide column right aligned'>
<i class='icon world'></i>
<a href="/language/zh-CN">简 体</a>
/
<a href="/language/zh-TW">繁 體</a>
/
<a href="/language/en">English</a>
</div>
</div>
</div>
</div>
</footer>
<script>
var officialEmail = $('#git-footer-email').text()
$('#git-footer-main .icon-popup').popup({ position: 'bottom center' })
$('#git-footer-email').text(officialEmail.replace('#', '@'))
window.gon.popover_card_locale = {
follow:"关注",
unfollow:"已关注",
gvp_title: "GVP - Gitee 最有价值开源项目",
project: "项目",
org: "开源组织",
member: "",
author: "作者",
user_blocked: "该用户已被屏蔽或已注销",
net_error: "网络错误",
unknown_exception: "未知异常"
}
window.gon.select_message = {
placeholder: "请输入个人空间地址或完整的邮箱地址"
}
</script>
<script src="https://cn-assets.gitee.com/webpacks/popover_card-90e2943d5fc869fd6435.bundle.js"></script>
<link rel="stylesheet" media="all" href="https://cn-assets.gitee.com/webpacks/css/gitee_nps-69491f94919350b0258c.css" />
<script src="https://cn-assets.gitee.com/webpacks/gitee_nps-548cf00696f895086765.bundle.js"></script>
<script src="https://cn-assets.gitee.com/webpacks/gitee_icons-2a476c43d2fabbe57e80.bundle.js"></script>
<div class='side-toolbar'>
<div class='button toolbar-help'>
<i class='iconfont icon-help'></i>
</div>
<div class='ui popup left center dark'>点此查找更多帮助</div>
<div class='toolbar-help-dialog'>
<div class='toolbar-dialog-header'>
<h3 class='toolbar-dialog-title'>搜索帮助</h3>
<form class="toolbar-help-search-form" action="/help/load_keywords_data" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />
<div class='ui icon input fluid toolbar-help-search'>
<input name='keywords' placeholder='请输入产品名称或问题' type='text'>
<i class='icon search'></i>
</div>
</form>
<i class='iconfont icon-close toolbar-dialog-close-icon'></i>
</div>
<div class='toolbar-dialog-content'>
<div class='toolbar-help-hot-search'>
<div class='toolbar-roll'>
<a class="init active" title="Git 命令在线学习" href="https://oschina.gitee.io/learn-git-branching/?utm_source==gitee-help-widget"><i class='Blue icon icon-command iconfont'></i>
<span>Git 命令在线学习</span>
</a><a class="init " title="如何在 Gitee 导入 GitHub 仓库" href="https://gitee.com/help/articles/4261?utm_source==gitee-help-widget"><i class='icon icon-clipboard iconfont orange'></i>
<span>如何在 Gitee 导入 GitHub 仓库</span>
</a></div>
<div class='toolbar-list'>
<div class='toolbar-list-item'>
<a href="/help/articles/4114">Git 仓库基础操作</a>
</div>
<div class='toolbar-list-item'>
<a href="/help/articles/4166">企业版和社区版功能对比</a>
</div>
<div class='toolbar-list-item'>
<a href="/help/articles/4191">SSH 公钥设置</a>
</div>
<div class='toolbar-list-item'>
<a href="/help/articles/4194">如何处理代码冲突</a>
</div>
<div class='toolbar-list-item'>
<a href="/help/articles/4232">仓库体积过大,如何减小?</a>
</div>
<div class='toolbar-list-item'>
<a href="/help/articles/4279">如何找回被删除的仓库数据</a>
</div>
<div class='toolbar-list-item'>
<a href="/help/articles/4283">Gitee 产品配额说明</a>
</div>
<div class='toolbar-list-item'>
<a href="/help/articles/4284">GitHub仓库快速导入Gitee及同步更新</a>
</div>
<div class='toolbar-list-item'>
<a href="/help/articles/4328">什么是 Release发行版</a>
</div>
<div class='toolbar-list-item'>
<a href="/help/articles/4354">将 PHP 项目自动发布到 packagist.org</a>
</div>
</div>
</div>
<div class='toolbar-help-search-reseult'></div>
</div>
</div>
<script>
var opt = { position: 'left center'};
var $helpSideToolbar = $('.button.toolbar-help');
var $toolbarRoll = $('.toolbar-roll');
$(function() {
if (true) {
$helpSideToolbar.popup(opt).popup({lastResort:'left center'})
} else {
$helpSideToolbar.popup({lastResort:'left center'}).popup('show', opt);
setTimeout(function() {
$helpSideToolbar.popup('hide', opt);
}, 3000);
}
if ($toolbarRoll.length) {
setInterval(function() {
var $nextActiveLink = $toolbarRoll.find('a.active').next();
if (!$nextActiveLink.length) {
$nextActiveLink = $toolbarRoll.find('a:first-child');
}
$nextActiveLink.attr('class', 'active').siblings().removeClass('active init');
}, 5000);
}
})
</script>
<div class='ui popup dark left center transition hidden js-feedback-popup'>发送反馈</div>
<div class='button' id='feedback-btn'>
<i class='iconfont icon-feedback'></i>
</div>
<div class='popup button' id='home-comment'>
<i class='iconfont icon-comment'></i>
</div>
<div class='ui popup dark'>评论</div>
<div class='toolbar-appeal popup button'>
<i class='iconfont icon-report'></i>
</div>
<div class='ui popup dark'>
仓库举报
</div>
<script>
$('.toolbar-appeal').popup({ position: 'left center' });
</script>
<div class='button gotop popup' id='gotop'>
<i class='iconfont icon-top'></i>
</div>
<div class='ui popup dark'>回到顶部</div>
</div>
<div class='ui modal small form' id='landing-complaint-modal'>
<i class='iconfont icon-close close'></i>
<div class='header'>
举报
</div>
<div class='content'>
<div class='appeal-success-tip hide'>
<i class='iconfont icon-ic_msg_success'></i>
<div class='appeal-success-text'>
举报成功
</div>
<span>
我们将于2个工作日内通过站内信和邮件方式反馈结果给你
</span>
</div>
<div class='appeal-tip'>
请认真填写举报原因,如举报内容涉及 版权/产权 方面问题,请尽可能提供完整证据和材料。
</div>
<div class='ui form appeal-form'>
<div class='inline field'>
<label class='left-part appeal-type-wrap'>
举报类型
</label>
<div class='ui dropdown selection' id='appeal-types'>
<div class='text default'>
请选择举报类型
</div>
<i class='dropdown icon'></i>
<div class='menu'></div>
</div>
</div>
<div class='inline field'>
<label class='left-part'>
举报原因
</label>
<textarea class='appeal-reason' name='msg' placeholder='请说明举报原因' rows='3'></textarea>
</div>
<div class='inline field appeal-file-wrap'>
<label class='left-part appeal-file-text'>
举报材料
</label>
<div id='appeal-file-container'>
<div class='ui fluid action input'>
<input disabled id='appeal-file' placeholder='支持 png/jpg/jpeg/doc/docx/zip/pdf大小不超过 10M' type='text'>
<div class='ui button'>
<input accept='image/png, image/jpeg, application/pdf, application/msword, aplication/zip, application/vnd.openxmlformats-officedocument.wordprocessingml.document' class='file-upload' type='file'>
浏览...
</input>
</div>
</div>
</div>
</div>
<div class='ui message callback-msg hide'></div>
<div class='ui small error text message exceeded-size-tip'></div>
</div>
</div>
<div class='actions'>
<div class='ui button blank cancel'>
取消
</div>
<div class='ui orange icon button disabled ok'>
发送
</div>
</div>
</div>
<script>
var $elm = $('.toolbar-appeal'),
$complaintModal = $('#landing-complaint-modal'),
$complainType = $complaintModal.find('#appeal-types'),
$complaintModalTip = $complaintModal.find('.callback-msg'),
$complaintContent = $complaintModal.find('.appeal-reason'),
$complaintBtn = $complaintModal.find('.ok.button'),
complaintSending = false,
fileObject = '';
$('#appeal-types').dropdown({showOnFocus: false});
$elm.on('click', function() {
$.ajax({
url: "/appeals/fetch_types",
method: 'get',
data:{'type': 'project'},
success:function(data){
var result = '';
for(var i=0;i<data.length;i++){
result = result + "<div class='item' data-value='"+data[i].id+"'>"+data[i].name+"</div>"
}
$('#appeal-types .menu').html(result)
}
})
$complaintModal.modal({
autofocus: false,
onApprove: function() {
sendAppeal();
return false;
},
onHidden: function() {
restoreDefault();
}
}).modal('show');
})
$complaintContent.on('change keyup', function(e) {
var content = $(this).val();
if ($.trim(content).length > 0 && $complainType.dropdown('get value').length > 0 ) {
$complaintBtn.removeClass('disabled');
return;
}
$complaintBtn.addClass('disabled');
})
$('#appeal-file-container .file-upload').on('change', function () {
var reader = new FileReader();
fileObject = this.files[0];
if (fileObject) {
var fileObjectName = fileObject.name.split('.');
var fileExt = fileObjectName[fileObjectName.length - 1];
if (fileObjectName.length < 2 || ['zip', 'png', 'jpg', 'jpeg', 'doc', 'docx', 'pdf'].indexOf(fileExt.toLowerCase()) < 0) {
fileObject = '';
$('.file-upload').val('');
$('.exceeded-size-tip').text("请选择上传 png/jpg/jpeg/doc/docx/zip/pdf 类型的文件").show();
return;
}
if (fileObject.size > 10*1024*1024) {
fileObject = '';
$('.file-upload').val('');
$('.exceeded-size-tip').text("上传文件大小不能超过 10M").show();
return;
}
reader.readAsDataURL(fileObject);
reader.onload = function() {
var data = reader.result;
$('.exceeded-size-tip').text('').hide();
$('#appeal-file').val(fileObject.name);
}
}
})
$('#appeal-types').dropdown({
showOnFocus: false,
onChange: function(value, text, $selectedItem) {
if (value.length > 0 && $.trim($complaintContent.val()).length > 0) {
$complaintBtn.removeClass('disabled');
return
}
$complaintBtn.addClass('disabled');
}
})
function restoreDefault() {
$('#appeal-types').dropdown('restore defaults');
$('.appeal-reason').val('');
$('#appeal-file').val('');
$('.exceeded-size-tip').text('').hide();
$('#appeal-file-container .file-upload').val('');
$complaintModalTip.text('').hide();
setTimeout(function() {
setSendTip(false);
}, 1500);
}
function sendAppeal() {
var appealType = $complainType.dropdown('get value');
var reason = $complaintContent.val();
if (complaintSending) {
return;
}
var formData = new FormData();
formData.append('appeal_type_id', appealType);
formData.append('reason', reason);
formData.append('file', fileObject);
formData.append('appeal_type', 'Project')
$.ajax({
type: 'POST',
url: "/appeals?target_id=31043253",
cache: false,
contentType: false,
processData: false,
data: formData,
beforeSend: function() {
setSendStatus(true);
},
success: function(res) {
if (res.status == 200) {
setSendTip(true);
setTimeout(function() {
$complaintModal.modal('hide');
restoreDefault();
}, 3000);
}
setSendStatus(false);
},
error: function(err) {
showTips(err.responseJSON.message, 'error');
setSendStatus(false);
}
})
}
function showTips(text, type) {
$complaintModalTip.text(text).show();
if (type == 'error') {
$complaintModalTip.removeClass('success').addClass('error');
} else {
$complaintModalTip.removeClass('error').addClass('success');
}
}
function setSendStatus(value) {
complaintSending = value;
if (complaintSending) {
$complaintBtn.addClass('loading');
$complaintContent.attr('readonly', true);
$complainType.attr('readonly', true);
} else {
$complaintBtn.removeClass('loading');
$complaintContent.attr('readonly', false);
$complainType.attr('readonly', false);
}
}
function setSendTip(value) {
if (value) {
$('.appeal-success-tip').removeClass('hide');
$('.appeal-tip').addClass('hide');
$('.appeal-form').addClass('hide');
$('#landing-complaint-modal .actions').addClass('hide');
} else {
$('.appeal-success-tip').addClass('hide');
$('.appeal-tip').removeClass('hide');
$('.appeal-form').removeClass('hide');
$('#landing-complaint-modal .actions').removeClass('hide');
}
}
</script>
<style>
.side-toolbar .bdsharebuttonbox a {
font-size: 24px;
color: white !important;
opacity: 0.9;
margin: 6px 6px 0px 6px;
background-image: none;
text-indent: 0;
height: auto;
width: auto;
}
</style>
<style>
#udesk_btn a {
margin: 0px 20px 217px 0px !important;
}
#ent-sale-img-wrap {
margin: 0px 15px 294px 0px !important;
}
</style>
<script>
(function() {
$('#project-user-message').popup({
position: 'left center'
});
}).call(this);
</script>
<script>
Gitee.initSideToolbar({
hasComment: true,
commentUrl: '/hongfeiq/cfg#tree_comm_title'
})
</script>
<link rel="stylesheet" media="all" href="https://cn-assets.gitee.com/webpacks/css/side_toolbar_feedback-5dcc1be9cca438cc952f.css" />
<script src="https://cn-assets.gitee.com/webpacks/side_toolbar_feedback-0a40b46f6fba3d382867.bundle.js"></script>
<style>
.gitee-stars-main-widget {
display: none;
position: fixed;
left: 0;
bottom: 0;
z-index: 106; }
.gitee-stars-main-widget .close-icon {
width: 20px;
right: 10px;
position: absolute;
top: 0px;
cursor: pointer; }
.gitee-stars-main-widget .people-image {
width: 200px;
margin: 0 10px; }
.gitee-stars-main-widget.gitee-stars-widget .close-icon {
left: 20px; }
</style>
<div class='gitee-stars-main-widget pendan-widget'>
<a target="_blank" href="https://gitee.com/gitee-community/gitee-talk/blob/master/yuanchuanghui12.09.md"><img class="people-image" src="https://foruda.gitee.com/images/1700649612804898316/e71a60c3_8189591.png" alt="E71a60c3 8189591" />
<img class="close-icon" src="https://foruda.gitee.com/images/1700649627577459186/df7b7c6b_8189591.png" alt="Df7b7c6b 8189591" />
</a></div>
<script>
$(function () {
var $giteeStarsWidget = $('.gitee-stars-main-widget')
var cookieKey = "visit-gitee--2023-11-22"
if ($.cookie(cookieKey) == 1) {
$giteeStarsWidget.hide()
} else {
$giteeStarsWidget.show()
}
$giteeStarsWidget.on('click', '.close-icon', function (e) {
e.preventDefault()
$.cookie(cookieKey, 1, {path: '/', expires: 60})
$giteeStarsWidget.hide()
})
})
</script>
<script>
(function() {
this.__gac = {
domain: 'www.oschina.net'
};
}).call(this);
</script>
<script src="https://cn-assets.gitee.com/webpacks/build_status-a3ee4cc8489b2defc1a8.bundle.js"></script>
<script src="https://cn-assets.gitee.com/webpacks/scan_status-8b929e0997115c370d33.bundle.js"></script>
<script src="https://cn-assets.gitee.com/webpacks/mermaid_render-80437a0d645e9044f9e8.bundle.js"></script>
</body>
</html>