纽约时间比加州时间早三个小时, New York is 3 hours ahead of California,

但加州时间并没有变慢。 but it does not make California slow.

有人 22 岁就毕业了, Someone graduated at the age of 22,

但等了五年才找到好的工作! but waited 5 years before securing a good job!

有人 25 岁就当上 CEO , Someone became a CEO at 25,

却在 50 岁去世。 and died at 50.

也有人迟到 50 岁才当上 CEO , While another became a CEO at 50,

然后活到 90 岁。 and lived to 90 years.

有人依然单身, Someone is still single,

同时也有人已婚。 while someone else got married.

奥巴马 55 岁就退休, Obama retires at 55,

川普 70 岁才开始当总统。 but Trump starts at 70.

世上每个人本来就有自己的发展时区。 Absolutely everyone in this world works based on their Time Zone.

身边有些人看似走在你前面, People around you might seem to go ahead of you,

也有人看似走在你后面。 some might seem to be behind you.

但其实每个人在自己的时区有自己的步程。 But everyone is running their own RACE, in their own TIME.

不用嫉妒或嘲笑他们。 Don’t envy them or mock them.

他们都在自己的时区里,你也是! They are in their TIME ZONE, and you are in yours!

生命就是等待正确的行动时机。 Life is about waiting for the right moment to act.

所以,放轻松。 So, RELAX.

你没有落后。 You’re not LATE.

你没有领先。 You’re not EARLY.

在命运为你安排的属于自己的时区里,一切都准时。 You are very much ON TIME, and in your TIME ZONE Destiny set up for you.

在馒头,我被 ban 了两个账号了,甚是可惜。最近又拿到邀请,成功入站,决心认真一点对待。40天未登录就ban账号的规则说实话还是有点严格,但是没办法,得遵循他们的规则

馒头考核-已达标

打算写代码自动模拟登录的,但是稍许有些麻烦。网上搜了一下也有现成的模拟登录的项目,但看上去部署太复杂,就没有兴趣阅读下去了。

发现可以利用 cron 和 curl 直接模拟登录,借用 chrome dev tool 的 copy request as curl(bash) 功能,可以把整个请求包含 cookie 复制下来,方便通过 curl 调用。

copy as curl

写一个 bash 脚本,cron 执行访问馒头的 userdetail 页面。

脚本位置 /home/dk/temp/mteam.sh, cron 内容, 意思是每周五的上午11点执行一次,并把日志输出到 /home/dk/temp/mteam-login-logs 目录下的 log 文件里,文件名举例: 2023-02-21_14-27-26.log

cron 内容

0 11 * * 5 bash /home/dk/temp/mteam.sh >/home/dk/temp/mteam-login-logs/$(date +%Y-%m-%d_%H-%M-%S).log

mteam.sh 脚本本身内容(已打码)

#!/bin/bash

set -e

curl 'https://kp.m-team.cc/userdetails.php?id=xxxxxx' \
  -H 'authority: kp.m-team.cc' \
  -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
  -H 'accept-language: zh,zh-CN;q=0.9,en-US;q=0.8,en;q=0.7' \
  -H 'cache-control: no-cache' \
  -H 'cookie: tp=xxxxxx; cf_clearance=xxxxxx' \
  -H 'dnt: 1' \
  -H 'pragma: no-cache' \
  -H 'sec-ch-ua: "Chromium";v="110", "Not A(Brand";v="24", "Google Chrome";v="110"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  -H 'sec-fetch-dest: document' \
  -H 'sec-fetch-mode: navigate' \
  -H 'sec-fetch-site: none' \
  -H 'sec-fetch-user: ?1' \
  -H 'upgrade-insecure-requests: 1' \
  -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36' \
  --compressed

查看生成的 log 文件,请求之后返回了一个完整的 html 静态页面

20230222140724

关于 Mattermost 服务端的安装搭建在此不做赘述,如果有朋友需要经验可以留言评论。我使用的是官方的 Dockerfile 构建并运行的。主程序 Dockerfile 位于 app/Dockerfile,mm 官方 GitHub 仓库地址: https://github.com/mattermost/mattermost-server

FROM alpine:3.10

# Some ENV variables
ENV PATH="/mattermost/bin:${PATH}"
ENV MM_INSTALL_TYPE=docker

# Build argument to set Mattermost edition
ARG edition=enterprise
ARG PUID=1002
ARG PGID=1003
ARG MM_BINARY=
#ARG MM_VERSION=5.37.9
ARG MM_VERSION=7.8.0

# Install some needed packages
RUN apk add --no-cache \
        ca-certificates \
        curl \
        jq \
        libc6-compat \
        libffi-dev \
        libcap \
        linux-headers \
        mailcap \
        netcat-openbsd \
        xmlsec-dev \
        tzdata \
        && rm -rf /tmp/*

# Get Mattermost
RUN mkdir -p /mattermost/data /mattermost/plugins /mattermost/client/plugins \
        && if [ ! -z "$MM_BINARY" ]; then curl $MM_BINARY | tar -xvz ; \
                elif [ "$edition" = "team" ] ; then curl https://releases.mattermost.com/$MM_VERSION/mattermost-team-$MM_VERSION-linux-amd64.tar.gz?src=docker-app | tar -xvz ; \
                else curl https://releases.mattermost.com/$MM_VERSION/mattermost-$MM_VERSION-linux-amd64.tar.gz?src=docker-app | tar -xvz ; fi \
        && cp /mattermost/config/config.json /config.json.save \
        && rm -rf /mattermost/config/config.json \
        && addgroup -g ${PGID} mattermost \
        && adduser -D -u ${PUID} -G mattermost -h /mattermost -D mattermost \
        && chown -R mattermost:mattermost /mattermost /config.json.save /mattermost/plugins /mattermost/client/plugins \
        && setcap cap_net_bind_service=+ep /mattermost/bin/mattermost

USER mattermost

#Healthcheck to make sure container is ready
HEALTHCHECK CMD curl --fail http://localhost:8000 || exit 1

# Configure entrypoint and command
COPY entrypoint.sh /
ENTRYPOINT ["/entrypoint.sh"]
WORKDIR /mattermost
CMD ["mattermost"]

# Expose port 8000 of the container
EXPOSE 8000

# Declare volumes for mount point directories
VOLUME ["/mattermost/data", "/mattermost/logs", "/mattermost/config", "/mattermost/plugins", "/mattermost/client/plugins"]

修改 MM_VERSION 为 7.8.0 之后发现卡在了 # Get Mattermost 的步骤,原因是与官方的服务器网络不通畅,下载速度特别慢,还容易丢失连接。

curl https://releases.mattermost.com/$MM_VERSION/mattermost-$MM_VERSION-linux-amd64.tar.gz?src=docker-app | tar -xvz

将此压缩包下载到本地, https://releases.mattermost.com/7.8.0/mattermost-7.8.0-linux-amd64.tar.gz?src=docker-app

然后上传到我的 Seafile,生成分享链接后通过 curl 获取文件直链,参考文章 获取 seafile 分享的文件直链 ,再更改 Dockerfile,就可以很快的 docker-compose build 了。

当时用 curl/wget -O mattermost-7.8.0-linux-amd64.tar.gz 都没有成功,拿到文件直链轻松解决。 https://emby.940304.xyz:23399/seafhttp/files/ac915dbb-14b7-4815-80c9-2d989f1830a2/mattermost-7.8.0-linux-amd64.tar.gz.tar

更新 mattermost 版本

mattermost 7.8.0

创建一个带有效期的分享文件的链接,比如 http://192.168.1.29:8088/f/266c337aab4c40598023/

点击即下载的直链是 http://192.168.1.29:8088/f/266c337aab4c40598023/?dl=1

但这些都还需要 js 运行后下载器才能获取到文件的直链。之前更新 Mattermost 后端需要下载最新版的 mm 压缩包程序,由于官网太慢,我就下载到了本地然后通过公网的 seafile 分享了个链接,试图修改 Dockerfile 让 curl 直接下载文件,最终找到了文件直链。

$ curl -vv http://192.168.1.29:8088/f/266c337aab4c40598023/?dl=1
*   Trying 192.168.1.29...
* TCP_NODELAY set
* Connected to 192.168.1.29 (192.168.1.29) port 8088 (#0)
> GET /f/266c337aab4c40598023/?dl=1 HTTP/1.1
> Host: 192.168.1.29:8088
> User-Agent: curl/7.52.1
> Accept: */*
>
< HTTP/1.1 302 Found
< Server: nginx/1.18.0 (Ubuntu)
< Date: Wed, 22 Feb 2023 01:46:28 GMT
< Content-Type: text/html; charset=utf-8
< Content-Length: 0
< Connection: keep-alive
< Location: http://192.168.1.29:8088/seafhttp/files/ab1a6620-1623-41e2-8838-3920199694e3/Snipaste_2022-06-09_11-02-04.png
< Vary: Cookie, Accept-Language
< Content-Language: en
< Set-Cookie: sfcsrftoken=FoZm3c677QZ3S99XuZe17Wl8wivMUBafSYH02DMBxFTsZcq7V4o5IMCxHzteWfr0; expires=Wed, 21 Feb 2024 01:46:28 GMT; Max-Age=31449600; Path=/; SameSite=Lax
<
* Curl_http_done: called premature == 0
* Connection #0 to host 192.168.1.29 left intact

可以看到 curl 之后 HTTP/1.1 302 Found,目标路径 location 是 http://192.168.1.29:8088/seafhttp/files/ab1a6620-1623-41e2-8838-3920199694e3/Snipaste_2022-06-09_11-02-04.png,这个就是文件直链。但在有效期过了之后文件直链便不可访问了。

原文来自 https://bbs.hupu.com/57127414.html


JR们,普通人的生活,就是这么艰难吗由消失的那三年 发表在步行街主干道 原谅我注册小号来发这篇帖子,有些心里话,就用流水账来释放一下吧,有点长希望有人能看完。

我是91年生人,今年已经31了,但是看起来显年轻,像刚毕业一两年的大学生。其实好几年前我就开始刻意把自己打扮得老成一点,基本都穿深色衣服,白头发很多也不染发,甚至平时也故意装作深沉。希望这样在工作时能够更受重视,在社交时能够更平等。

14年毕业之后,在武汉工作了两年,每个月3000块,期间遇到了初恋,16年她出国了我被分手。于是冲动之下去了深圳,一个月6000块,工作了一年除了给家里转了一万,自己一分钱没留下。这才发现,即使在遍地黄金的深圳,我依然是属于赚不到钱的那种人。

17年又只身一人去了北京,找了三个月工作才进了一家金融公司上班,月薪翻了一倍,期间遇到了第二个女朋友。结果上班一年后,我因为炒币不仅一分钱没剩下,还落下十多万的负债,为了不让家里人担心,我至今都没有提过这件事。女朋友没有选择离开我,反而一直鼓励我,这段感情让我怀念至今。

19年进了教培行业,月薪又涨了点,工作强度很大,为了还债我任劳任怨。期间带女朋友回了一趟武汉,见了父母,一家人出门旅游了一趟,大家都很开心。来回开车七八个小时,我爸一个人开的,回家他不太舒服,在家躺了两天才恢复。回北京后我开始默默盘算结婚的事情,可是看着计算器上的数字,我开始对自己产生质疑:我是一个值得托付的人吗?

19年底疫情爆发,我留在北京,没有回武汉过年。

20年涨薪了,这一年钱包余额终于变成了正数。但最终我们还是分手了,这时我已经毕业6年了,身上只有两三万的存款,20万的彩礼+房子首付+结婚费用,是我想都不敢想的数字。

11月份,我接到妈妈的电话,整个人都懵了,时隔7年,经过多次复查,我爸居然胃癌复发了。给主治医生打电话的时候,第一句话还没说出口,我就已经忍不住哭出声来了。听医生亲口告诉我他只剩半年时间,我在角落坐了半个小时才缓过神来。晚上躺在卧铺车上,回想起这些年的点点滴滴,眼泪控制不住的往下流。回家第一件事,是他拉着我们去拍了套全家福。

我爸是个客车司机,开了一辈子车,也没能给自己买一辆私家车。查出病情以后,表哥把车借给他过过瘾,有时候我回武汉,他就开着车带我去没人的路段练车。我想起小时候指着马路上的车问他,这是什么牌子,他告诉我这是凌志,日本车豪车。我回答说长大赚钱了一定给你买一辆。我打开虎扑,开始搜预算之内的车型,跟他说想买辆轩逸开,一家人出去自驾游。他说花那钱干什么,先买房结婚,结婚了再买个好车一步到位。

于是我开始看房,身上算上公积金只有15万,我妈拉着我的手说,家里没能力帮我,积蓄要给我爸治病,最新的抗癌针一针1万9,一个月就要打一针。我说要不先治病吧,房子以后再说。她说已经没办法了,现在只图不留遗憾。我四处借了四十多万上了车,办好手续那天,我爸气色看起来都好一些了。住了几十年老破小,到我这辈终于在武汉扎了根。

20年过年,一家四口终于在一起开开心心吃了一顿年夜饭,也是最后一顿。

21年跳槽了薪资涨了一截,可以外派到湖南长期出差,离武汉很近周末没事能回去陪陪爸妈。这年我姐出嫁了,看着我爸开心的样子,我有点后悔分手了。

7月份双减出台,我开始提心吊胆,看着负债和房贷,安慰自己一切都会好起来,在家人面前我还是只字未提。月底姐姐流产了,爸爸的精气神一下子就垮了,本来想熬到看一眼孙子,结果也没能如愿。

8月份他身体状况越来越差,有天晚上他在群里发了张一万块的保单,我问这是干啥,他说是买的人寿险,以后你帮你妈取一下她不懂这个。没过多久我接到家里电话说情况不太好,于是请假回家,我爸见到我第一句就是你回来干什么,我现在好好的,工作要紧。这时他已经卧床不起了,连大便都需要人看着免得摔倒。我在床边守了两天,喂他喝水,帮他排尿。不自觉想起二十年前病床上的爷爷,那时我也守在床边,一听到他哼唧就起身拿痰盂帮他导尿,他是食道癌去世的。两天后,爸爸也走了。我觉得生活不过如此,有时候走在马路上都不看路,车开过来都不想躲。

9月份买的房子传出了烂尾的消息,监管资金被掏空,交房遥遥无期。

21年过年回家相亲,遇到了第三个女孩,各方面都挺合适,很会为人着想也不物质,我以为终于遇到了真爱。可是业务调整我调回了北京,只能抽空回武汉找她,疫情反复,还因为密接被隔离过。我们见面虽然少,感情却越来越好。5月份被裁员,找工作很困难,整个人很消沉,跟她的交流也少了,我又开始问自己真的是一个值得托付的人吗?有一天她问我,跟她在一起是因为喜欢,还是因为合适。我愣住了,30岁了,喜欢和合适的界限变的很模糊,不再只受荷尔蒙的支配,我一定是爱她的,但一定不只是因为爱。不久她提了分手,果断而决绝。我打包好东西回武汉,试图挽回她,她一句话让我收起了卑微:你比我大好几岁,但我有时候还要反过来照顾你。

回武汉还了一半债务,余额又变成了负数。好久才找到一份工作,薪资是上一份的零头,甚至又变回了最基础的专员岗。我再一次对自己产生质疑:我这些年,究竟在做些什么?事业上、感情上、生活上,始终摆脱不了稚气,努力了这么多年,一直落后于同龄人,甚至被一些毕业没两年的年轻人甩在身后。

都说人的成长是接受父母的平凡,接受自己的平凡,接受孩子的平凡。

我从小都是人群里的普通人,不算聪明,成绩中等,考了二本,工作一般,没有冲劲,不会赚钱,嘴皮子笨。但我一直是我爸眼里的希望,我踏实学习不鬼混,我是村里第一个大学生,我在北京大公司工作。

也许在他眼里我一定会闯出名堂吧,不知道他走时带着多少个遗憾。

可是我自己清楚,30岁的年纪,25岁的皮囊,20岁的灵魂。我的性格决定,我一定不是一个强者。即使人生在世,事业上、感情上,就需要你成为强者。

我接受了自己的平凡,可是平凡的人啊,路要怎么走呢。