Git Product home page Git Product logo

lucienshui / pasteme Goto Github PK

View Code? Open in Web Editor NEW
1.2K 1.2K 155.0 3.24 MB

PasteMe 是一个无需注册的文本分享平台(未登陆状态下只能使用阅后即焚),可以为文本设置密码和阅后即焚,支持二维码分享和各种一键复制,针对代码提供了额外的高亮功能。

Home Page: https://pasteme.cn

License: GNU General Public License v3.0

docker github go paste vue

pasteme's Introduction

license version version donate

PasteMe

前后端代码存放于 PasteMeFrontendPasteMeGoBackend

PasteMe 是一个无需注册的文本分享平台,针对代码提供了额外的高亮功能。

  • 用户上传的文本,称作「一贴」。

  • 在创建一贴时,设置密码自我销毁 可以高度保证用户内容的安全与私密性。

  • 在将自己的一贴分享给别人时,提供了一键复制链接和二维码分享等多种途径。

  • 在查看别人的一贴时,可以一键复制所有文本。如果是自我销毁的一贴,则会在结束生命周期时从数据库 物理删除

各位老板,求 Star 和 PR。Orz

一些场景

  • 如果你要发布一个脚本,可以把 Bash 或者 Python 等脚本上传至 PasteMe ,然后通过 curl 和管道机制来进行优雅的发布,比如:curl api.pasteme.cn/8219 | python3

  • 如果你要发给某人一些私密的信息,比如一段 token,但是通过 QQ 、微信等聊天工具可能会被 “查水表”,你可以将私密信息以阅后即焚形式上传至 PasteMe ,将一次性链接分享给别人,别人查看一次之后这个链接就会失效

  • 想要向服务器内粘贴一段代码,但是苦于字符集,复制、上传上去之后有其它的字符,此时你可以上传至 pasteme ,然后通过 wget api.pasteme.cn/<key> -O file_name 来进行优雅的拉取

  • 新装了一台没有图形化界面的服务器,没开 sshd 服务,没有可用的编辑器去编辑 sources.list 文件,直接用默认源安装一个编辑器又太慢,此时可以用 curl api.pasteme.cn/<key> > /etc/apt/sources.listwget api.pasteme.cn/<key> -O /etc/apt/sources.list 来更新 apt 源,然后进行优雅的 apt update

作者的话

由于之前的永久存储具有传播性,被一些不法份子拿来传播一些不合规的内容,直接导致 PasteMe 被查水表了。(免责声明并没有用)

新版本的 PasteMe 被迫增加了一些限制,未登录的用户只能发布 自我销毁 且附带限制的一贴,登陆后才能发布永久存储的一贴。

而由于前端、后端开发资源的制约,目前是没有用户系统的,需要相当长的一段时间来做这件事情。

欢迎有意参与开发的小伙伴联系我,为 PasteMe 的发展添砖加瓦。

文档

docs.pasteme.cn

截图

homePage

read_once

success

qrcode

markdown_parsed

markdown_source

捐助名单

docs.pasteme.cn/#/other/donate

版权所有

Copyright © 2017-2021 Lucien Shui All Rights Reserved

免责声明

本平台只提供文本分享的载体,与所有文本内容均没有任何联系。

Star History

Star History Chart

pasteme's People

Contributors

dependabot[bot] avatar ireneliuqaq avatar lucienshui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pasteme's Issues

人机验证

关联 #34
应该可以同时解决验证码和放垃圾的问题

prism 的渲染问题

Index.vueview 切换至 PasteView.vue 之前需要调用 window.Prism.highlightAll() 渲染一次,然后在 PasteView.vue 之内又要调用 window.Prism.highlightAll() 渲染一次,这两次渲染缺一不可,如果不这么做会出现无法渲染或者是渲染不充分的问题。

但是按道理来讲应该只用在 axios 回调的时候渲染一次即可,所以将其列为 BUG

i18n 懒加载

  1. 目前的 i18n 多语言未实现懒加载
  2. donate 部分目前的策略是弹框之后才开始加载图片,欲更改成在访问主页时就加载图片,只是把图片的优先级调至最低,这样一来打开 donate 的时候不用等待加载图片

部署问题

无法部署啊? 是否没有上传最新版本的code啊, 部署完之后主页提示 请确认索引串是否存在

Python SDK

如何用python生成(获取)剪贴板?

#98

  • API文档希望加一点翻译(QAQ看不懂)
  • 加点样例代码please

主要还是我英语不好(毕竟我也就13岁)

Thanks!

移动端的 GitHub 图标问题

移动端的 GitHub 图标会导致导航栏内的组件错位,而且会占据很大一部分空间,考虑移动端隐藏。

删除 Paste 的条目

暂时是通过改sql解决的,有点麻烦,希望能加个删除按钮之类的?

关于调用被禁用的申诉

Hi,PasteMe Master。

我这边之前在使用 PasteMe 的时候,发现非常好用,并且使用阅后即焚的机制开发了一个与服务通讯的功能,大致原理是任意终端通过 PasteMe 指定的索引发送通讯指令,服务器轮询(cron * 8-23 * * * )调用 PasteMe 查询通讯指令,若有内容,则解析并执行返回的内容。

目前观察到,可能因为频繁访问的原因,我的服务器已经(大约从 10 月 8 日开始)无法调用 PasteMe ,现申请看能否进行解封或者解除限制。

P.S. 之前考虑到 PasteMe 的压力以及应用场景,将服务器接收指令的响应时间间隔调整为了 1 分钟来减轻压力,并且只在需要使用的时间段 8 点 - 23 点请求,尽量的减少轮询次数。

后话

之前想的是自己搭建,后面脑洞大开,既然 PasteMe 已经提供了优质的服务,就没必要自己搭建了,那么就用起来一起和 PasteMe 进步,何乐而不为呢。

后面可能还会使用 PasteMe 的机制开发更多功能(可能依然是轮询),不知道能否可行。

密码中含有 . 时会出现错误

当密码中含有 . 访问时会出现错误,错误代码为(此处密码为0.0.):

GET: /api/jglbczb7,0.0.
{"message":"Request failed with status code 404","name":"Error","fileName":"https://shadow.elemecdn.com/npm/[email protected]/dist/axios.min.js","lineNumber":8,"columnNumber":6410,"stack":"e.exports@https://shadow.elemecdn.com/npm/[email protected]/dist/axios.min.js:8:6410\ne.exports@https://shadow.elemecdn.com/npm/[email protected]/dist/axios.min.js:8:6257\ne.exports/</d.onreadystatechange@https://shadow.elemecdn.com/npm/[email protected]/dist/axios.min.js:8:5142\nget/</<@https://cdn.jsdelivr.net/gh/PasteUs/[email protected]/pasteme/js/app.4f97dc78.js:1:32073\nc@https://cdn.jsdelivr.net/gh/PasteUs/[email protected]/pasteme/js/chunk-vendors.61922c75.js:6:123977\nR/<@https://cdn.jsdelivr.net/gh/PasteUs/[email protected]/pasteme/js/chunk-vendors.61922c75.js:6:124127\nf@https://cdn.jsdelivr.net/gh/PasteUs/[email protected]/pasteme/js/chunk-vendors.61922c75.js:6:154033\ne.exports/<@https://shadow.elemecdn.com/npm/[email protected]/dist/axios.min.js:8:6125\nT@https://cdn.jsdelivr.net/gh/PasteUs/[email protected]/pasteme/js/chunk-vendors.61922c75.js:6:125063\ne.exports@https://shadow.elemecdn.com/npm/[email protected]/dist/axios.min.js:8:4493\ne.exports@https://shadow.elemecdn.com/npm/[email protected]/dist/axios.min.js:8:2617\nc@https://cdn.jsdelivr.net/gh/PasteUs/[email protected]/pasteme/js/chunk-vendors.61922c75.js:6:123977\nR/<@https://cdn.jsdelivr.net/gh/PasteUs/[email protected]/pasteme/js/chunk-vendors.61922c75.js:6:124127\nf@https://cdn.jsdelivr.net/gh/PasteUs/[email protected]/pasteme/js/chunk-vendors.61922c75.js:6:154033\n","config":{"url":"/api/jglbczb7,0.0.","method":"get","params":{"json":"true"},"headers":{"Accept":"application/json, text/plain, */*"},"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1}}

paste后访问显示404

用docker部署的,没有改数据库密码,改了前端端口号

可以正常访问和提交代码,在数据库容器里查看数据库也确实存进去了,但是网页访问显示404

Chrome插件

不知道大佬是否可以提供Chrome插件
实现如下的效果(2个功能给个选项):
1 点击之后获取剪贴板的数据然后返回链接给剪贴板
2 获取当前页面的内容并返回一条链接
麻烦了

一些建议

  • 可以加入自定义paste过期时间,能够查看次数等
  • 索引使用随机数字可能会被恶意遍历,泄露隐私,建议采用随机生成短字符串的方式作为索引
  • 可以加入raw方式预览内容,方便cli中调用
  • 希望能够支持更多类型语言的高亮

组件引入问题

目前 prismqs 是通过某种奇怪的方式引入进项目,应该会有更优雅的方法。

API文档优化

  • API文档希望加一点翻译(蒟蒻表示看不懂)
  • 加点样例代码可以更直观(python,PHP .etc)

主要还是我英语不好(毕竟我也就13岁)

Thanks!

持续集成流程调整

  1. 将项目本身分为 dev, pre, product 三个阶段,前后端 dev 分支推至 dev 环境,PasteMe dev 分支推至 pre 环境,PasteMe master 分支推至 product 环境
  2. 将 PasteMe Frontend,PasteMe Backend 的版本独立开,PasteMe 的版本等于前后端的版本做拼接,如:前端版本为 3.0.3,后端版本为 3.0.1 ,那么 PasteMe 的版本为 3.0.3F-3.0.1B ,其中 F 代表 Frontend ,B 代表 Backend
  3. 前端和后端推至 master 后会自动推至 PasteMe 的 dev

PasteMe CI/D

前端重写

  • 用 Vue 重写前端
  • 加入 Ajax
  • 异步提交表单

复制功能的个性化

感谢您的创作!已经把这个项目推荐给朋友们了,有时候大家在写作上有些需要交流的想法,用这个平台就能很顺利地分享~再次感谢您!
但站在创作者的角度,总担忧如果链接流传出去,大家的心血会不会被有心人一键复制、篡改然后恶意传播……
所以很希望:

  • 在编辑页面添加功能:让用户自选能否被一键复制

非常感谢您!

docker部署后502

我只是吧yml里的 端口映射到外部80 改为86了 然后服务器访问就报错 502
image

前后端分离

目前是前后端混写的状态,没有 API 的概念,交互比较混乱,维护难度越来越大,正好距离上一次重构也过去半年了,那就再重构一下吧。

docker和手动版本版本问题汇总

背景信息

  • 部署方式:手动/docker-compose
  • 版本号:pasteme-frontend:3.2.2----pasteme-go-backend:3.2.1

问题

  1. docker版本部署完,生成的内容链接无法打开
  2. 手动部署,我用sqlite3作为数据库,前端打开一片空白.
  3. 我自己制作的docker也是,只有npm run serve可以正常打开,其它模式也是前端一片空白(这个我看了下,很多外链CDN的js和css失效).

建议

  1. 优化部署文档,文档尽量详细(包含前后端依赖)以便适合小白部署.
  2. 建议本地存放js和css,避免网络异常带来的各种问题.
  3. 建议提供amd64/arm64双平台的docker镜像.

其它

这是发您的邮件,作为回复您说没收到的问题.
image

几个值得改进问题

  1. 支持的语言类型过少, 限制了适用人群;
  2. 无法设置过期时间;
  3. 可以参考ubuntu pastebin做进一步的改善;
  4. 观察到使用了clipboard.js进行复制, 可否在点击复制按钮后插入data-clipboard-text, 复制成功后销毁该属性, 或者使用原生方法进行复制? 文本量巨大的时候会显著增加内存占用和页面加载时间。

验证码、防垃圾和代码高亮

我很喜欢你的这个项目呀,加油!
我给点建议哈:
我觉得防机器人是迟早要做的,比如验证码,还有你提到的同ip多次提交什么的(有可能学校或者内网规模大点的企业会出现同ip一起提交?)。
然后为了防止数据库被挤爆,是不是还要考虑数据库定时清理?
编写程序的时候,应该提供高亮(用到哪个程序加载哪个的高亮js),而不只是读的时候高亮可能会更好~

希望上线定时清理功能

由一位叫做 R*~ 的小伙伴提出的建议,“映射” 至这里

我的理解是,在阅后即焚中加入 x 次浏览y [分钟|小时|天] 后过期的功能

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.