Skip to content

Commit

Permalink
feat: add pyinstaller
Browse files Browse the repository at this point in the history
  • Loading branch information
liulinboyi committed Apr 28, 2022
1 parent e398747 commit 5093257
Show file tree
Hide file tree
Showing 7 changed files with 148 additions and 74 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
__pycache__/
.idea/
.idea/
/venv/
/build/
/dist/
17 changes: 17 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "pwa-node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}\\script\\replace.js"
}
]
}
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,17 @@ python -m flask run -p 8088 -h 0.0.0.0
```
打开 http://127.0.0.1:8088 即可在本地使用

## 打包EXE

```shell
pyinstaller -F --add-data="./templates;templates" .\app.py
```
打开 http://127.0.0.1:8088 即可在本地使用

## 已打包好的EXE
下载到本地后,双击即可使用
打开 http://127.0.0.1:8088 即可在本地使用

# 两段文字相似度对比程序(带界面,可用于论文降重)
![icon](icon.ico)
## (1)使用Python及其simtext包,逐句计算两段文本相似度
Expand Down
2 changes: 1 addition & 1 deletion app.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,5 @@ def compare():


if __name__ == '__main__':
app.run(host='0.0.0.0', port=1234)
app.run(host='0.0.0.0', port=8088)
# 这里指定了地址和端口号。
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ Werkzeug==2.1.1
uvicorn
requests
pydantic
flask-cors
flask-cors
pyinstaller
20 changes: 20 additions & 0 deletions script/replace.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/**
* 脚本用户替换查询网址
* 2022/04/29
* write by
* https://github.com/liulinboyi
*/
const fs = require('fs')
const path = require('path')

let content = fs.readFileSync(path.resolve(__dirname, '../index.html')).toString()

/** 正则替换查询网址 */
function replacer(match, p1, p2, offset, string) {
let palce = match.replace(p1, '`http://${location.host}/compare`')
return palce
}

content.replace(/await[\s]+postData\((.+?)(\s*,\s*[\s\S]+)*\)/, replacer)

fs.writeFileSync(path.resolve(__dirname, '../templates/compare.html'), content)
164 changes: 93 additions & 71 deletions templates/compare.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,17 @@
.out {
display: flex;
flex-direction: column;
position: relative;
margin-right: 32px;
}

.fork {
position: fixed;
right: 8px;
}

.fork a {
display: inline-block;
}

.section {
Expand Down Expand Up @@ -68,82 +79,93 @@
</style>
</head>
<body>
<div class="out">
<div class="section">
<div class="out">
<div class="fork">
<a target="_blank" href="https://github.com/liulinboyi/Dissertation-weight-reduction">
<svg height="32" aria-hidden="true" viewBox="0 0 16 16" version="1.1" width="32"
data-view-component="true" class="octicon octicon-mark-github v-align-middle">
<path fill-rule="evenodd"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z">
</path>
</svg>
</a>
</div>

<div class="section">
<textarea name="" id="mytext" cols="30" rows="10"
placeholder="输入自己写的文字。这里的文字将逐句与下面的文字比较。相似度高于阈值的句子将被标红!"></textarea>
<div id="mytext-res"></div>
placeholder="输入自己写的文字。这里的文字将逐句与下面的文字比较。相似度高于阈值的句子将被标红!"></textarea>
<div id="mytext-res"></div>
</div>
<div class="section">
<textarea name="" id="para" cols="30" rows="10" placeholder="输入要对比的文字。"></textarea>
<div id="para-res"></div>
</div>
<div class="section">
阈值:<input type="number" id="percent-number">
</div>
<div id="result">此处显示结果。</div>
<div id="persent-out">大于阈值<span id="persont-show">50%</span>的平均相似度为:<span id="persent">0%</span></div>
</div>
<div class="section">
<textarea name="" id="para" cols="30" rows="10" placeholder="输入要对比的文字。"></textarea>
<div id="para-res"></div>
</div>
<div class="section">
阈值:<input type="number" id="percent-number">
</div>
<div id="result">此处显示结果。</div>
<div id="persent-out">大于阈值<span id="persont-show">50%</span>的平均相似度为:<span id="persent">0%</span></div>
</div>
<div class="cicle"></div>
<button id="check">查重</button>
<script>
// Example POST method implementation:
async function postData(url = '', data = {}) {
// Default options are marked with *
const response = await fetch(url, {
method: 'POST', // *GET, POST, PUT, DELETE, etc.
mode: 'cors', // no-cors, *cors, same-origin
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
credentials: 'same-origin', // include, *same-origin, omit
headers: {
'Content-Type': 'application/json'
// 'Content-Type': 'application/x-www-form-urlencoded',
},
redirect: 'follow', // manual, *follow, error
referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
body: JSON.stringify(data) // body data type must match "Content-Type" header
});
return response.json(); // parses JSON response into native JavaScript objects
}
<div class="cicle"></div>
<button id="check">查重</button>
<script>
// Example POST method implementation:
async function postData(url = '', data = {}) {
// Default options are marked with *
const response = await fetch(url, {
method: 'POST', // *GET, POST, PUT, DELETE, etc.
mode: 'cors', // no-cors, *cors, same-origin
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
credentials: 'same-origin', // include, *same-origin, omit
headers: {
'Content-Type': 'application/json'
// 'Content-Type': 'application/x-www-form-urlencoded',
},
redirect: 'follow', // manual, *follow, error
referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
body: JSON.stringify(data) // body data type must match "Content-Type" header
});
return response.json(); // parses JSON response into native JavaScript objects
}

let out = document.querySelector(".out")
let cicle = document.querySelector(".cicle")
let check = document.querySelector("#check")
let mytext = document.querySelector("#mytext")
let para = document.querySelector("#para")
let percentNumber = document.querySelector("#percent-number")
let persontShow = document.querySelector("#persont-show")
let mytextRes = document.querySelector("#mytext-res")
let paraRes = document.querySelector("#para-res")
let result = document.querySelector("#result")
let persent = document.querySelector("#persent")
let out = document.querySelector(".out")
let cicle = document.querySelector(".cicle")
let check = document.querySelector("#check")
let mytext = document.querySelector("#mytext")
let para = document.querySelector("#para")
let percentNumber = document.querySelector("#percent-number")
let persontShow = document.querySelector("#persont-show")
let mytextRes = document.querySelector("#mytext-res")
let paraRes = document.querySelector("#para-res")
let result = document.querySelector("#result")
let persent = document.querySelector("#persent")

// 设置默认对比值
mytext.value = `Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guidovan Rossum于1989年发明,第一个公开发行版发行于1991年。`
para.value = `Python是由荷兰人Guidovan Rossum于1989年发明的,一种面向对象的解释型计算机程序设计语言,第一个公开发行版发行于1991年。`
percentNumber.value = 50
persontShow.innerHTML = `${percentNumber.value}%`
// 设置默认对比值
mytext.value = `Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guidovan Rossum于1989年发明,第一个公开发行版发行于1991年。`
para.value = `Python是由荷兰人Guidovan Rossum于1989年发明的,一种面向对象的解释型计算机程序设计语言,第一个公开发行版发行于1991年。`
percentNumber.value = 50
persontShow.innerHTML = `${percentNumber.value}%`

check.addEventListener('click', async function () {
out.style.display = 'none'
cicle.style.display = 'block'
let res = await postData(`http://${location.host}/compare`, {
mytext: mytext.value,
para: para.value,
persent: percentNumber.value
check.addEventListener('click', async function () {
out.style.display = 'none'
cicle.style.display = 'block'
let res = await postData('https://liulinboyi.pythonanywhere.com/compare', {
mytext: mytext.value,
para: para.value,
persent: percentNumber.value
})
console.log(res)
mytextRes.innerHTML = res.para1mk
paraRes.innerHTML = res.para2mk
result.innerHTML = res.text1color
persent.innerHTML = res.mean_only
persontShow.innerHTML = `${percentNumber.value}%`
cicle.style.display = 'none'
out.style.display = 'block'
// .then(data => {
// console.log(data); // JSON data parsed by `data.json()` call
// });
})
console.log(res)
mytextRes.innerHTML = res.para1mk
paraRes.innerHTML = res.para2mk
result.innerHTML = res.text1color
persent.innerHTML = res.mean_only
persontShow.innerHTML = `${percentNumber.value}%`
cicle.style.display = 'none'
out.style.display = 'block'
// .then(data => {
// console.log(data); // JSON data parsed by `data.json()` call
// });
})
</script>
</script>
</body>
</html>

0 comments on commit 5093257

Please sign in to comment.