当前位置: 首页 > 后端技术 > Node.js

最近流行的逆向挑战-ReverseVoice(微信小程序版前后端源码)Ts节点太郎

时间:2023-04-04 01:15:48 Node.js

椤圭洰鍦板潃锛歨ttps://github.com/smackgg/reversevoice鏁翠釜椤圭洰鍏跺疄寰堢畝鍗曘€備粠鍦ㄦ姈闊冲拰B绔欑湅鍒颁汉姘旓紝鍒板皬绋嬪簭鏈€鍚庝笂绾匡紝涓嬬彮娌″嚑澶╁氨瀹屾垚浜嗐€?1鑷?鏈?6鏃ヤ笂绾夸互鏉ワ紝鐢ㄦ埛閲忚繕鏄尯澶氱殑锛堜富瑕佹槸褰撴椂杩欑被app姣旇緝灏戰煒傦級锛岀幇鍦ㄥ嚭鐜颁簡涓€澶ф壒鏇寸畝鍗曟洿濂界敤鐨勫€掔珛鎸戞垬app銆傛湰椤圭洰寮€婧愪緵澶у瀛︿範~鎶辨姳TypeScript~椤轰究灏忓0璇翠竴涓嬶紝Taro瀵筎s鐨勬敮鎸佽繕鏄笉澶燂紝甯屾湜澶у澶氱粰Taro澶歅R涓€浜沝ts~浣撻獙灏忕▼搴忎簩缁寸爜鎸戞垬鍒嗕韩璐达紙姝よ创鏆傛椂鏈夐棶棰橈紝淇鐮佸洜璧勮川闂鏆傛湭鎻愪氦瀹℃牳锛夊姛鑳戒粙缁?瀹炵幇鍘熺悊鍔熻兘鍙婂疄鐜板師鐞嗙畝浠嬪皬绋嬪簭绔敤鎴峰綍闊冲苟淇濆瓨鏈湴褰曢煶锛屼笂浼犲綍闊虫枃浠惰嚦鍚庣杩涜鍙嶅悜鎾斁澶勭悊锛岃繑鍥炲鐞嗗悗鐨勯煶棰憉rl灏忕▼搴忕涓嬭浇url鏂囦欢锛屾彁绀虹敤鎴峰弽鍚戞挱鏀炬垚鍔燂紝鏁版嵁鍋氭垚鏈湴鍦板浘銆傜敤鎴风偣鍑诲垎浜紝鐢熸垚鍒嗕韩閾炬帴锛屽皢鍒嗕韩鐨勬鍚戝拰鍙嶅悜瑙嗛浼犺緭鍒板悗鍙帮紝淇濆瓨鍒颁竷鐗涗簯銆傚悓鏃舵柊寤轰竴涓叡浜埧闂翠繚瀛樼敤鎴蜂俊鎭紝杩斿洖roomId鐢ㄦ埛杩涜鍏变韩銆傦紙娴锋姤鍒嗕韩鐢诲竷鍔ㄦ€佺敓鎴愬垎浜唬鐮佹捣鎶ワ級鍏朵粬鐢ㄦ埛鍙備笌鎸戞垬锛屽瓨鍌ㄥ師鐞嗗悓4锛屽彧鏄坊鍔犳寫鎴樿€呬俊鎭紝瀛樺偍鍦ㄦ埧闂寸殑閫昏緫闊抽鎾斁涓娇鐢╢fmpeg杩涜闊抽鎾斁锛屾牳蹇冧唬鐮侊細//瑙併€?server/src/controllers/file.ts=>鍑芥暟reverseVoiceimportffmpegPathfrom'@ffmpeg-installer/ffmpeg'importffprobePathfrom'@ffprobe-installer/ffprobe'importffmpegfrom'fluent-ffmpeg'ffmpeg.setFfprobePath(ffprobePath.path)ffmpeg.setFfmpegPath(ffmpegPath.path)ffmpeg(filepath).format('mp4')//鍙嶈浆.outputOptions(['-vfreverse','-afareverse','-preset','superfast','-鏄?,]).on('progress',(progress)=>{//鍙戦€佷笂浼犺繘搴onsole.log('upload-file-progress',progress.percent)}).on('error',(err)=>{console.log(`Ffmpeg宸茶鏉€姝?{err.message}`)}).toFormat('mp3')//save.save(publicPath+saveFilePath).on('end',()=>{//鑾峰彇闊抽淇℃伅锛堟椂闀跨瓑锛塮fmpeg.ffprobe(publicPath+saveFilePath,(err,metadata)=>{console.log(metadata.format.duration)})})灏忕▼搴忓綍鍒跺皬绋嬪簭褰曞埗浣跨敤瀹樻柟api,璇︾粏閫昏緫瑙?/wechatapp/pages/index/index.tsx褰曞埗娴锋姤鐢熸垚浣跨敤canvas鍔ㄦ€佸悎鎴愬垎浜捣鎶?wechatapp/pages/sharePoster闇€瑕佸姩鎬佽姹傞〉闈㈠皬绋嬪簭浠g爜锛屾秹鍙婂埌寰俊AccessToken璁よ瘉绛夛紝璇︽儏瑙?server/src/controllers/wechat.ts锛屼笅闈㈣创鍑洪儴鍒嗘牳蹇冧唬鐮?/drawingconstdraw=async()=>{//缁樺浘鍔犺浇鍓峊aro.showLoading({title:'娴锋姤姝e湪鍔犺浇涓璯enerated...',mask:true,})//鑾峰彇鍥剧墖淇℃伅const[productImgInfo,qrcodeImgInfo]=awaitPromise.all([this.getImageInfo(sharePoster),//鑾峰彇涓诲浘this.getQrImgInfo(),//鑾峰彇浜岀淮鐮佸浘鐗嘳)//鍟嗗搧鍥剧墖瀹介珮constpW=CANVAS_WIDTHconstpH=(pW/productImgInfo.width)*productImgInfo.height//鐢诲竷楂樺害0,0,CANVAS_WIDTH,canvasHeight)//缁樺埗鑳屾櫙鍥綾tx.drawImage(sharePoster,0,0,pW,pH)//缁樺埗浜岀淮鐮侊紙鍥犱负鏈夎搴︼紝闇€瑕佹棆杞敾甯冿紝鐒跺悗鍚戝悗鏃嬭浆)ctx.rotate(-Math.PI/32)ctx.translate(-25*ratio,10*ratio)ctx.drawImage(qrcodeImgInfo.path,QR_LEFT,QR_TOP,QR_WIDTH,QR_WIDTH)ctx.rotate(Math.PI/32)this.setState({canvasStyle:{...this.state.canvasStyle,height:canvasHeight,},})ctx.stroke()setTimeout(()=>{Taro.hideLoading()ctx.draw()澶嶅埗浠g爜},500)}寰俊鍒嗕韩HOC鍔熻兘./wechatapp/components/@withShare//寰俊灏忕▼搴忓嚑涔庢瘡涓〉闈㈤兘闇€瑕侀厤缃垎浜弬鏁帮紝鑰屼笖鍒嗕韩鍙傛暟闇€瑕佸姩鎬佸彉鍖栥€?/杩欐牱HOC缁勪欢灏卞垎绂诲嚭鏉ヤ簡锛岃繖鏍烽〉闈㈠氨鍙互浣跨敤assets/images/share.png'绫诲瀷閫夐」={title?:stringimageUrl?:stringpath?:string}constdefalutOptions:Options={title:'浣犺兘鐞嗚В鎴戣鐨勫悧锛熸渶杩戞祦琛岀殑閫嗗悜褰曞埗鏉ヤ簡~',imageUrl:defaultShareImg,path:'pages/index/index',}functionwithShare(){returnfunctiondemoComponent(Component:ComponentClass){@connect(({user})=>({userInfo:user.userInfo}))classWithShareextendsComponent{$shareOptions?:OptionsasynccomponentWillMount(){Taro.showShareMenu({withShareTicket:true,})if(super.componentWillMount){super.componentWillMount()}}//浣犵偣鍑诲垎浜殑閭d竴鍒讳細璋冪敤onShareAppMessage(){//constsharePath=`${path}&shareFromUser=${userInfo.shareId}`letoptions=defaultOptionsif(this.$shareOptions){閫夐」={...defaultOptions,...this.$shareOptions,}}杩斿洖閫夐」}render(){returnsuper.r()}}returnWithShare}}exportdefaultwithShareuses@withShare()classRoomextendsComponent{/***鎸囧畾config鐨勭被鍨嬪0鏄庝负锛歍aro.Config**鐢变簬typescript鍙兘鎺ㄥ鍑哄璞$殑Key鍩虹绫诲瀷鎺ㄥType*鏄帹瀵肩被鍨嬬殑瀛楃涓诧紝渚嬪navigationBarTextStyle:'black'*鎻愮ず鍜屽0鏄巒avigationBarTextStyle:'black'|}$shareOptions={title:'鍙嶅悜鎸戞垬锛佷綘鑳界湅鎳傛垜鍊掔潃娲楀ご鍙戝悧~',path:'pages/index/index',imageUrl:'',}/**....*/}寰俊鐢ㄦ埛鐧诲綍娴佺▼鍏蜂綋瀹炵幇涓哄井淇″畼鏂规枃妗g櫥褰曡繃绋嬶紝鍙互鍘绘煡鐪嬫簮鐮侀」鐩繍琛?闇€瑕佹彁鍓嶅畨瑁呭悗绔噯澶囷細瀹夎Node.jsInstallMongoDB寮€濮嬪厠闅嗛」鐩繘鍏ュ悗绔洰褰昪d鏈嶅姟鍣ㄥ畨瑁呬緷璧杗pminstall璁剧疆mongoDB#鍒涘缓db鐩綍sudomkdir-p/data/db#缁檇b姝g‘鐨勮/鍐欐潈闄恠udochmod777/data/db#浠巑acOS10.15寮€濮嬶紝鍗充娇绠$悊鍛樹笉鑳藉湪鏍圭洰褰曚笅鍒涘缓鐩綍#鎵€浠ヨ鎴戜滑鍒涘缓home鐩綍涓嬬殑db鐩綍.mkdir-p~/data/db#鐢ㄦ埛璐﹀彿鑷姩鎷ユ湁瀵箏/data/db鐨勮鍐欐潈闄愩€傚惎鍔╩ongoDB(S鍚姩鎮ㄧ殑mongoDB鏈嶅姟鍣紙鎮ㄥ彲鑳介渶瑕佸彟涓€涓懡浠ゆ彁绀虹锛塵ongod#鍦╩acOS10.15鎴栨洿楂樼増鏈笂db鐩綍浣嶄簬涓荤洰褰曚笅mongod--dbpath~/data/dbpackage骞惰繍琛岄」鐩畁pmrunbuildnpmstartprojectrun-appletside闇€瑕佹彁鍓嶅畨瑁呭噯澶囷細瀹夎寰俊寮€鍙戣€呭伐鍏峰紑濮嬪厠闅嗛」鐩紝杩涘叆灏忕▼搴忕洰褰昪dwechatapp瀹夎渚濊禆npminstall鏂板缓涓€涓?env鏂囦欢clonewechatapp/src/涓嬬殑env.example.ts鏂囦欢utils鐩綍鍒板悓绾х洰褰曪紝鍛藉悕涓?env.ts鏂囦欢锛岃鏂囦欢鐨勪袱涓弬鏁板垎鍒唬琛ㄦ湰鍦板紑鍙戝拰鍦ㄧ嚎閮ㄧ讲鐨勮姹傚湴鍧€銆傝繍琛岄」鐩畁pmrundev:weapp//寮€鍙戞ā寮忔垨npmrunbuild:weapp//鐢熶骇妯″紡鍦ㄥ紑鍙戣€呭伐鍏稬icenseMIT涓獙璇佸悎娉曞煙鍚嶁€?/p>