Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
W
wxBot
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
wxBot
Commits
0d1712ed
Commit
0d1712ed
authored
Jul 22, 2017
by
fangzhipeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交源代码
parent
ba8d8d1c
Changes
16
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1085 additions
and
0 deletions
+1085
-0
mvnw
mvnw
+225
-0
mvnw.cmd
mvnw.cmd
+143
-0
pom.xml
pom.xml
+81
-0
result.png
result.png
+0
-0
src/main/java/com/yg84/Login.java
src/main/java/com/yg84/Login.java
+23
-0
src/main/java/com/yg84/WeixinApplication.java
src/main/java/com/yg84/WeixinApplication.java
+19
-0
src/main/java/com/yg84/weixin/Contact.java
src/main/java/com/yg84/weixin/Contact.java
+38
-0
src/main/java/com/yg84/weixin/DefaultMessageHandler.java
src/main/java/com/yg84/weixin/DefaultMessageHandler.java
+31
-0
src/main/java/com/yg84/weixin/MatrixToImageWriter.java
src/main/java/com/yg84/weixin/MatrixToImageWriter.java
+46
-0
src/main/java/com/yg84/weixin/Message.java
src/main/java/com/yg84/weixin/Message.java
+26
-0
src/main/java/com/yg84/weixin/MessageHandler.java
src/main/java/com/yg84/weixin/MessageHandler.java
+12
-0
src/main/java/com/yg84/weixin/MyAcount.java
src/main/java/com/yg84/weixin/MyAcount.java
+26
-0
src/main/java/com/yg84/weixin/MyCookieStore.java
src/main/java/com/yg84/weixin/MyCookieStore.java
+62
-0
src/main/java/com/yg84/weixin/WeChat.java
src/main/java/com/yg84/weixin/WeChat.java
+335
-0
src/main/resources/application.properties
src/main/resources/application.properties
+2
-0
src/test/java/com/yg84/WeixinApplicationTests.java
src/test/java/com/yg84/WeixinApplicationTests.java
+16
-0
No files found.
mvnw
0 → 100755
View file @
0d1712ed
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if
[
-z
"
$MAVEN_SKIP_RC
"
]
;
then
if
[
-f
/etc/mavenrc
]
;
then
.
/etc/mavenrc
fi
if
[
-f
"
$HOME
/.mavenrc"
]
;
then
.
"
$HOME
/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin
=
false
;
darwin
=
false
;
mingw
=
false
case
"
`
uname
`
"
in
CYGWIN
*
)
cygwin
=
true
;;
MINGW
*
)
mingw
=
true
;;
Darwin
*
)
darwin
=
true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if
[
-z
"
$JAVA_HOME
"
]
;
then
if
[
-x
"/usr/libexec/java_home"
]
;
then
export
JAVA_HOME
=
"
`
/usr/libexec/java_home
`
"
else
export
JAVA_HOME
=
"/Library/Java/Home"
fi
fi
;;
esac
if
[
-z
"
$JAVA_HOME
"
]
;
then
if
[
-r
/etc/gentoo-release
]
;
then
JAVA_HOME
=
`
java-config
--jre-home
`
fi
fi
if
[
-z
"
$M2_HOME
"
]
;
then
## resolve links - $0 may be a link to maven's home
PRG
=
"
$0
"
# need this for relative symlinks
while
[
-h
"
$PRG
"
]
;
do
ls
=
`
ls
-ld
"
$PRG
"
`
link
=
`
expr
"
$ls
"
:
'.*-> \(.*\)$'
`
if
expr
"
$link
"
:
'/.*'
>
/dev/null
;
then
PRG
=
"
$link
"
else
PRG
=
"
`
dirname
"
$PRG
"
`
/
$link
"
fi
done
saveddir
=
`
pwd
`
M2_HOME
=
`
dirname
"
$PRG
"
`
/..
# make it fully qualified
M2_HOME
=
`
cd
"
$M2_HOME
"
&&
pwd
`
cd
"
$saveddir
"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if
$cygwin
;
then
[
-n
"
$M2_HOME
"
]
&&
M2_HOME
=
`
cygpath
--unix
"
$M2_HOME
"
`
[
-n
"
$JAVA_HOME
"
]
&&
JAVA_HOME
=
`
cygpath
--unix
"
$JAVA_HOME
"
`
[
-n
"
$CLASSPATH
"
]
&&
CLASSPATH
=
`
cygpath
--path
--unix
"
$CLASSPATH
"
`
fi
# For Migwn, ensure paths are in UNIX format before anything is touched
if
$mingw
;
then
[
-n
"
$M2_HOME
"
]
&&
M2_HOME
=
"
`
(
cd
"
$M2_HOME
"
;
pwd
)
`
"
[
-n
"
$JAVA_HOME
"
]
&&
JAVA_HOME
=
"
`
(
cd
"
$JAVA_HOME
"
;
pwd
)
`
"
# TODO classpath?
fi
if
[
-z
"
$JAVA_HOME
"
]
;
then
javaExecutable
=
"
`
which javac
`
"
if
[
-n
"
$javaExecutable
"
]
&&
!
[
"
`
expr
\"
$javaExecutable
\"
:
'\([^ ]*\)'
`
"
=
"no"
]
;
then
# readlink(1) is not available as standard on Solaris 10.
readLink
=
`
which
readlink
`
if
[
!
`
expr
"
$readLink
"
:
'\([^ ]*\)'
`
=
"no"
]
;
then
if
$darwin
;
then
javaHome
=
"
`
dirname
\"
$javaExecutable
\"
`
"
javaExecutable
=
"
`
cd
\"
$javaHome
\"
&&
pwd
-P
`
/javac"
else
javaExecutable
=
"
`
readlink
-f
\"
$javaExecutable
\"
`
"
fi
javaHome
=
"
`
dirname
\"
$javaExecutable
\"
`
"
javaHome
=
`
expr
"
$javaHome
"
:
'\(.*\)/bin'
`
JAVA_HOME
=
"
$javaHome
"
export
JAVA_HOME
fi
fi
fi
if
[
-z
"
$JAVACMD
"
]
;
then
if
[
-n
"
$JAVA_HOME
"
]
;
then
if
[
-x
"
$JAVA_HOME
/jre/sh/java"
]
;
then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD
=
"
$JAVA_HOME
/jre/sh/java"
else
JAVACMD
=
"
$JAVA_HOME
/bin/java"
fi
else
JAVACMD
=
"
`
which java
`
"
fi
fi
if
[
!
-x
"
$JAVACMD
"
]
;
then
echo
"Error: JAVA_HOME is not defined correctly."
>
&2
echo
" We cannot execute
$JAVACMD
"
>
&2
exit
1
fi
if
[
-z
"
$JAVA_HOME
"
]
;
then
echo
"Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER
=
org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir
()
{
if
[
-z
"
$1
"
]
then
echo
"Path not specified to find_maven_basedir"
return
1
fi
basedir
=
"
$1
"
wdir
=
"
$1
"
while
[
"
$wdir
"
!=
'/'
]
;
do
if
[
-d
"
$wdir
"
/.mvn
]
;
then
basedir
=
$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if
[
-d
"
${
wdir
}
"
]
;
then
wdir
=
`
cd
"
$wdir
/.."
;
pwd
`
fi
# end of workaround
done
echo
"
${
basedir
}
"
}
# concatenates all lines of a file
concat_lines
()
{
if
[
-f
"
$1
"
]
;
then
echo
"
$(
tr
-s
'\n'
' '
<
"
$1
"
)
"
fi
}
BASE_DIR
=
`
find_maven_basedir
"
$(
pwd
)
"
`
if
[
-z
"
$BASE_DIR
"
]
;
then
exit
1
;
fi
export
MAVEN_PROJECTBASEDIR
=
${
MAVEN_BASEDIR
:-
"
$BASE_DIR
"
}
echo
$MAVEN_PROJECTBASEDIR
MAVEN_OPTS
=
"
$(
concat_lines
"
$MAVEN_PROJECTBASEDIR
/.mvn/jvm.config"
)
$MAVEN_OPTS
"
# For Cygwin, switch paths to Windows format before running java
if
$cygwin
;
then
[
-n
"
$M2_HOME
"
]
&&
M2_HOME
=
`
cygpath
--path
--windows
"
$M2_HOME
"
`
[
-n
"
$JAVA_HOME
"
]
&&
JAVA_HOME
=
`
cygpath
--path
--windows
"
$JAVA_HOME
"
`
[
-n
"
$CLASSPATH
"
]
&&
CLASSPATH
=
`
cygpath
--path
--windows
"
$CLASSPATH
"
`
[
-n
"
$MAVEN_PROJECTBASEDIR
"
]
&&
MAVEN_PROJECTBASEDIR
=
`
cygpath
--path
--windows
"
$MAVEN_PROJECTBASEDIR
"
`
fi
WRAPPER_LAUNCHER
=
org.apache.maven.wrapper.MavenWrapperMain
exec
"
$JAVACMD
"
\
$MAVEN_OPTS
\
-classpath
"
$MAVEN_PROJECTBASEDIR
/.mvn/wrapper/maven-wrapper.jar"
\
"-Dmaven.home=
${
M2_HOME
}
"
"-Dmaven.multiModuleProjectDirectory=
${
MAVEN_PROJECTBASEDIR
}
"
\
${
WRAPPER_LAUNCHER
}
$MAVEN_CONFIG
"
$@
"
mvnw.cmd
0 → 100644
View file @
0d1712ed
@REM
----------------------------------------------------------------------------
@REM
Licensed
to
the
Apache
Software
Foundation
(
ASF
)
under
one
@REM
or
more
contributor
license
agreements
.
See
the
NOTICE
file
@REM
distributed
with
this
work
for
additional
information
@REM
regarding
copyright
ownership
.
The
ASF
licenses
this
file
@REM
to
you
under
the
Apache
License
,
Version
2
.0
(
the
@REM
"License"
);
you
may
not
use
this
file
except
in
compliance
@REM
with
the
License
.
You
may
obtain
a
copy
of
the
License
at
@REM
@REM
http
://www.apache.org/licenses/LICENSE
-
2
.0
@REM
@REM
Unless
required
by
applicable
law
or
agreed
to
in
writing
,
@REM
software
distributed
under
the
License
is
distributed
on
an
@REM
"AS IS"
BASIS
,
WITHOUT
WARRANTIES
OR
CONDITIONS
OF
ANY
@REM
KIND
,
either
express
or
implied
.
See
the
License
for
the
@REM
specific
language
governing
permissions
and
limitations
@REM
under
the
License
.
@REM
----------------------------------------------------------------------------
@REM
----------------------------------------------------------------------------
@REM
Maven2
Start
Up
Batch
script
@REM
@REM
Required
ENV
vars
:
@REM
JAVA_HOME
-
location
of
a
JDK
home
dir
@REM
@REM
Optional
ENV
vars
@REM
M2_HOME
-
location
of
maven2
's installed home dir
@REM MAVEN_BATCH_ECHO - set to '
on
' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to '
on
' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '
@
' in case MAVEN_BATCH_ECHO is '
on
'
@echo off
@REM enable echoing my setting MAVEN_BATCH_ECHO to '
on
'
@if "
%MAVEN_BATCH_ECHO%
" == "on" echo
%MAVEN_BATCH_ECHO%
@REM set
%HOME%
to equivalent of $HOME
if "
%HOME%
" == "" (set "HOME=
%HOMEDRIVE%%
HOMEPATH
%
")
@REM Execute a user defined script before this one
if not "
%MAVEN_SKIP_RC%
" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "
%HOME%
\mavenrc_pre.bat" call "
%HOME%
\mavenrc_pre.bat"
if exist "
%HOME%
\mavenrc_pre.cmd" call "
%HOME%
\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "
%JAVA_HOME%
" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "
%JAVA_HOME%
\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "
%JAVA_HOME%
" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=
%MAVEN_BASEDIR%
IF NOT "
%MAVEN_PROJECTBASEDIR%
"=="" goto endDetectBaseDir
set EXEC_DIR=
%CD%
set WDIR=
%EXEC_DIR%
:findBaseDir
IF EXIST "
%WDIR%
"\.mvn goto baseDirFound
cd ..
IF "
%WDIR%
"=="
%CD%
" goto baseDirNotFound
set WDIR=
%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=
%WDIR%
cd "
%EXEC_DIR%
"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=
%EXEC_DIR%
cd "
%EXEC_DIR%
"
:endDetectBaseDir
IF NOT EXIST "
%MAVEN_PROJECTBASEDIR%
\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims="
%%a
in ("
%MAVEN_PROJECTBASEDIR%
\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=
!JVM_CONFIG_MAVEN_PROPS!
%%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=
%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="
%JAVA_HOME%
\bin\java.exe"
set WRAPPER_JAR="
%MAVEN_PROJECTBASEDIR%
\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
%MAVEN_JAVA_EXE%
%JVM_CONFIG_MAVEN_PROPS%
%MAVEN_OPTS%
%MAVEN_DEBUG_OPTS%
-classpath
%WRAPPER_JAR%
"-Dmaven.multiModuleProjectDirectory=
%MAVEN_PROJECTBASEDIR%
"
%WRAPPER_LAUNCHER%
%MAVEN_CONFIG%
%
*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=
%ERROR_CODE%
if not "
%MAVEN_SKIP_RC%
" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "
%HOME%
\mavenrc_post.bat" call "
%HOME%
\mavenrc_post.bat"
if exist "
%HOME%
\mavenrc_post.cmd" call "
%HOME%
\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to '
on
'
if "
%MAVEN_BATCH_PAUSE%
" == "on" pause
if "
%MAVEN_TERMINATE_CMD%
" == "on" exit
%ERROR_CODE%
exit /B
%ERROR_CODE%
pom.xml
0 → 100644
View file @
0d1712ed
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<groupId>
com.yg84
</groupId>
<artifactId>
weixin
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
<packaging>
jar
</packaging>
<name>
weixin
</name>
<description>
Demo project for Spring Boot
</description>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
1.5.4.RELEASE
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<project.reporting.outputEncoding>
UTF-8
</project.reporting.outputEncoding>
<java.version>
1.8
</java.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-devtools
</artifactId>
<scope>
runtime
</scope>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp/okhttp -->
<dependency>
<groupId>
com.squareup.okhttp
</groupId>
<artifactId>
okhttp
</artifactId>
<version>
2.7.5
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.35
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
<dependency>
<groupId>
com.google.zxing
</groupId>
<artifactId>
core
</artifactId>
<version>
3.3.0
</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<configuration>
<includeSystemScope>
true
</includeSystemScope>
<!--<fork>true</fork>-->
</configuration>
</plugin>
</plugins>
</build>
</project>
result.png
0 → 100644
View file @
0d1712ed
1.49 KB
src/main/java/com/yg84/Login.java
0 → 100644
View file @
0d1712ed
package
com
.
yg84
;
import
com.squareup.okhttp.OkHttpClient
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* Created by fangzhipeng on 2017/7/16.
*/
@RestController
public
class
Login
{
@RequestMapping
(
value
=
"/login"
)
public
String
login
()
throws
Exception
{
return
WeixinApplication
.
weChat
.
run
();
}
@RequestMapping
(
value
=
"/sendMsg"
)
public
String
sendMsg
(
String
name
,
String
content
)
throws
Exception
{
return
WeixinApplication
.
weChat
.
sendMsg
(
name
,
content
);
}
}
src/main/java/com/yg84/WeixinApplication.java
0 → 100644
View file @
0d1712ed
package
com
.
yg84
;
import
com.yg84.weixin.WeChat
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@EnableAutoConfiguration
@SpringBootApplication
public
class
WeixinApplication
{
public
static
WeChat
weChat
=
new
WeChat
(
null
);
public
static
void
main
(
String
[]
args
)
{
System
.
setProperty
(
"jsse.enableSNIExtension"
,
"false"
);
SpringApplication
.
run
(
WeixinApplication
.
class
,
args
);
}
}
src/main/java/com/yg84/weixin/Contact.java
0 → 100644
View file @
0d1712ed
package
com
.
yg84
.
weixin
;
import
com.alibaba.fastjson.JSONObject
;
import
javax.sound.midi.Soundbank
;
/**
* Created by fangzhipeng on 2017/7/22.
*/
public
class
Contact
{
private
String
userName
;
private
String
nickName
;
private
String
remarkName
;
public
String
getUserName
()
{
return
userName
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
public
String
getNickName
()
{
return
nickName
;
}
public
void
setNickName
(
String
nickName
)
{
this
.
nickName
=
nickName
;
}
public
String
getRemarkName
()
{
return
remarkName
;
}
public
void
setRemarkName
(
String
remarkName
)
{
this
.
remarkName
=
remarkName
;
}
}
src/main/java/com/yg84/weixin/DefaultMessageHandler.java
0 → 100644
View file @
0d1712ed
package
com
.
yg84
.
weixin
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* Created by fangzhipeng on 2017/7/22.
*/
public
class
DefaultMessageHandler
implements
MessageHandler
{
private
WeChat
weChat
;
public
DefaultMessageHandler
(
WeChat
weChat
)
{
this
.
weChat
=
weChat
;
}
@Override
public
void
handleMsg
(
List
<
Message
>
messages
)
throws
Exception
{
List
<
Contact
>
contacts
=
weChat
.
getContacts
();
Map
<
String
,
Contact
>
contactByUserName
=
new
HashMap
<>();
for
(
Contact
contact
:
contacts
)
{
contactByUserName
.
put
(
contact
.
getUserName
(),
contact
);
}
for
(
Message
message
:
messages
)
{
Contact
contact
=
contactByUserName
.
get
(
message
.
getFromUserName
());
System
.
out
.
println
(
contact
.
getNickName
()
+
"发来消息:"
+
message
.
getContent
());
}
}
}
src/main/java/com/yg84/weixin/MatrixToImageWriter.java
0 → 100644
View file @
0d1712ed
package
com
.
yg84
.
weixin
;
import
com.google.zxing.common.BitMatrix
;
import
javax.imageio.ImageIO
;
import
java.awt.image.BufferedImage
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.OutputStream
;
/**
* Created by fangzhipeng on 2017/7/20.
*/
public
class
MatrixToImageWriter
{
private
static
final
int
BLACK
=
0xFF000000
;
private
static
final
int
WHITE
=
0xFFFFFFFF
;
private
MatrixToImageWriter
()
{
}
public
static
BufferedImage
toBufferedImage
(
BitMatrix
matrix
)
{
int
width
=
matrix
.
getWidth
();
int
height
=
matrix
.
getHeight
();
BufferedImage
image
=
new
BufferedImage
(
width
,
height
,
BufferedImage
.
TYPE_INT_RGB
);
for
(
int
x
=
0
;
x
<
width
;
x
++)
{
for
(
int
y
=
0
;
y
<
height
;
y
++)
{
image
.
setRGB
(
x
,
y
,
matrix
.
get
(
x
,
y
)
?
BLACK
:
WHITE
);
}
}
return
image
;
}
public
static
void
writeToFile
(
BitMatrix
matrix
,
String
format
,
File
file
)
throws
IOException
{
BufferedImage
image
=
toBufferedImage
(
matrix
);
if
(!
ImageIO
.
write
(
image
,
format
,
file
))
{
throw
new
IOException
(
"Could not write an image of format "
+
format
+
" to "
+
file
);
}
}
public
static
void
writeToStream
(
BitMatrix
matrix
,
String
format
,
OutputStream
stream
)
throws
IOException
{
BufferedImage
image
=
toBufferedImage
(
matrix
);
if
(!
ImageIO
.
write
(
image
,
format
,
stream
))
{
throw
new
IOException
(
"Could not write an image of format "
+
format
);
}
}
}
src/main/java/com/yg84/weixin/Message.java
0 → 100644
View file @
0d1712ed
package
com
.
yg84
.
weixin
;
/**
* Created by fangzhipeng on 2017/7/22.
*/
public
class
Message
{
private
String
fromUserName
;
private
String
content
;
public
String
getFromUserName
()
{
return
fromUserName
;
}
public
void
setFromUserName
(
String
fromUserName
)
{
this
.
fromUserName
=
fromUserName
;
}
public
String
getContent
()
{
return
content
;
}
public
void
setContent
(
String
content
)
{
this
.
content
=
content
;
}
}
src/main/java/com/yg84/weixin/MessageHandler.java
0 → 100644
View file @
0d1712ed
package
com
.
yg84
.
weixin
;
import
java.util.List
;
/**
* Created by fangzhipeng on 2017/7/22.
*/
public
interface
MessageHandler
{
public
void
handleMsg
(
List
<
Message
>
messages
)
throws
Exception
;
}
src/main/java/com/yg84/weixin/MyAcount.java
0 → 100644
View file @
0d1712ed
package
com
.
yg84
.
weixin
;
/**
* Created by fangzhipeng on 2017/7/22.
*/
public
class
MyAcount
{
private
String
userName
;
private
String
nickName
;
public
String
getUserName
()
{
return
userName
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
public
String
getNickName
()
{
return
nickName
;
}
public
void
setNickName
(
String
nickName
)
{
this
.
nickName
=
nickName
;
}
}
src/main/java/com/yg84/weixin/MyCookieStore.java
0 → 100644
View file @
0d1712ed
package
com
.
yg84
.
weixin
;
import
java.net.CookieStore
;
import
java.net.HttpCookie
;
import
java.net.URI
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* Created by fangzhipeng on 2017/7/16.
*/
public
class
MyCookieStore
implements
CookieStore
{
private
Map
<
URI
,
List
<
HttpCookie
>>
cookieMap
=
new
HashMap
<>();
@Override
public
void
add
(
URI
uri
,
HttpCookie
cookie
)
{
if
(!
cookieMap
.
containsKey
(
uri
))
{
cookieMap
.
put
(
uri
,
new
ArrayList
<>());
}
cookieMap
.
get
(
uri
).
add
(
cookie
);
}
@Override
public
List
<
HttpCookie
>
get
(
URI
uri
)
{
List
<
HttpCookie
>
list
=
new
ArrayList
<>();
cookieMap
.
values
().
forEach
(
list:
:
addAll
);
return
list
;
}
@Override
public
List
<
HttpCookie
>
getCookies
()
{
List
<
HttpCookie
>
ret
=
new
ArrayList
<>();
for
(
List
<
HttpCookie
>
value
:
cookieMap
.
values
())
{
ret
.
addAll
(
value
);
}
return
ret
;
}
@Override
public
List
<
URI
>
getURIs
()
{
List
<
URI
>
ret
=
new
ArrayList
<>();
for
(
URI
uri
:
cookieMap
.
keySet
())
{
ret
.
add
(
uri
);
}
return
ret
;
}
@Override
public
boolean
remove
(
URI
uri
,
HttpCookie
cookie
)
{
cookieMap
.
get
(
uri
).
remove
(
cookie
);
return
true
;
}
@Override
public
boolean
removeAll
()
{
cookieMap
.
clear
();
return
true
;
}
}
src/main/java/com/yg84/weixin/WeChat.java
0 → 100644
View file @
0d1712ed
This diff is collapsed.
Click to expand it.
src/main/resources/application.properties
0 → 100644
View file @
0d1712ed
server.port
=
9999
server.tomcat.uri-encoding
=
utf-8
\ No newline at end of file
src/test/java/com/yg84/WeixinApplicationTests.java
0 → 100644
View file @
0d1712ed
package
com
.
yg84
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
public
class
WeixinApplicationTests
{
@Test
public
void
contextLoads
()
{
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment