Skip to content

Commit

Permalink
Version 0.5.3; Check Changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
itsjunetime committed Nov 3, 2020
1 parent 5df1b4e commit 83a6645
Show file tree
Hide file tree
Showing 8 changed files with 223 additions and 139 deletions.
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SMServer

![The iphone & web interfaces side by side](assets/smserver.png)
<span style="font-weight: 200; font-size: 12px">The iPhone and web interfaces shown side by side</span>
<span style="font-weight: 200; font-size: 12px">The web interface shown with personal information blurred out</span>

**SMServer is an iPhone app, written in SwiftUI, which allows for one to send and receive text messages (and iMessages) from their Web browser**

Expand All @@ -27,7 +27,7 @@

### Dependencies
- libsmserver, the tweak which allows sending texts with this app. You can get it from [here](https://github.com/iandwelker/libsmserver).
- To install the ipa: some signing service/bypass -- Whether this be signing via Xcode, AltServer, etc. or using AppSync Unified to bypass signing checks, any works. I'd recommend AppSync since you won't have to manually sign it, but if that doesn't work for you, then feel free to sign & install the .ipa. The .deb does not require signing or any sort of bypass, since it install as a system application.
- To install the ipa (NOT the deb): some signing service/bypass -- Whether this be signing via Xcode, AltServer, etc. or using AppSync Unified to bypass signing checks, any works. I'd recommend AppSync since you won't have to manually sign it, but if that doesn't work for you, then feel free to sign & install the .ipa. The .deb does not require signing or any sort of bypass, since it install as a system application.

## To Install
Use the provided .ipa or .deb package under the Releases, or read `docs/INSTALL.md` for information on how to build from source.
Expand All @@ -41,7 +41,7 @@ The source code may be updated past the latest released version, so don't be sur
5. Enjoy!
6. (Optional) Customize the defaults under the settings section of the app to better fit your needs

## TODO
<!--## TODO
- [x] View conversations in browser
- [x] View texts in browser
- [x] Dynamic loading of texts
Expand All @@ -65,6 +65,7 @@ The source code may be updated past the latest released version, so don't be sur
- [x] Subject lines for texts on web interface
- [ ] Ability to send reactions from web interface - This is nearly done
- [ ] Search through messages from browser - This has been implemented in the API
- [ ] Ability to delete conversations from the web interface-->

## Issues
If there are any issues, questions, or feature requests at all, don't hesitate to create an issue or pull request here, or email me at [email protected]. I may not run into all issues that could possibly come up, so I would really appreciate any issues you let me know about.
Expand All @@ -88,7 +89,7 @@ Also, if the app did not crash on startup, but rather crashed after it was alrea
- Enable debug on the app, then kill the app in app switcher
- Start the app and let it reach the error point
- Manually copy the output from the above command (as much as you can get) into a text file.
- DM me the file at u/Janshai on reddit. This file may have sensitive information, such as contact phone numbers, so it wouldn't be smart to upload it to a public site. Feel free to filter out (with something like regex or by hand) the sensitive information.
- Email me the file at [email protected]. This file may have sensitive information, such as contact phone numbers, so it wouldn't be smart to upload it to a public site. Feel free to filter out (with something like regex or by hand) the sensitive information.

## Companion App
There is a [python app](http://github.com/iandwelker/smserver_receiver), based on curses, which I would highly recommend one use in conjunction with this app. It is significantly faster than the web interface, much easier to navigate, more easily customizable, and handles authenticates for you. You can get it at the link above; it has all the information necessary to get it up and running. As always, just ask or open an issue if you have a question.
Expand Down
4 changes: 2 additions & 2 deletions docs/API.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Example queries:
Retrieves the latest $num_chats conversations

- chat: Parameter is necessary, and value is inconsequential. Calling the parameter 'chat' simply specifies that you are asking for a list of the conversations on the device.

- num_chats: Parameter is not necessary, and value is consequential. Value must be integer, and will specify how many conversations to get the information of. If unspecified, it will default to the device's default, which is, at the time of writing, 40. If it is 0, it will retrieve all chats.

- chats_offset: Parameter is not necessary, and value is consequential. Value must be an integer, and it will specify the offset of conversations to get. For example, if you've already retrieved the first 40 conversations, adn would like to retrieve the next 40, you would set both `num_chats` and `chats_offset` to 40. If this is not specified, it will default to 0.
Expand All @@ -48,7 +48,7 @@ Example queries:
Retrieves the contact name that accompanies chat_identifier $name

- name: Parameter is necessary, and value is consequential. Value must be the chat_identifier for the contact whose name you want. It can get the name if given an email address or phone number of an individual, but it cannot get a contact name for a group chat, since none such exist. Email must be given in the regular format, and phone number must be given in the format that the above 'person' section specifies.

Example queries:
- /requests?name=[email protected]
- /requests?name=+12761938272
Expand Down
11 changes: 11 additions & 0 deletions docs/Changelog.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# Changelog
0.5.2 -> 0.5.3
- Added inline audio displays
- Images and attachments now appear more similar to stock iMessage
- Reactions now appear correctly in group chats
- Added functionality to select the "SMServer" title and de-select the currently selected conversation
- Expanded chat preview text to 2 lines to be more like stock
- Minor optimizations in html on web interface
- Fixed issue where browser wouldn't correctly return if it was focused or not (which, in turn, fixes many other issues).
- Fixed style issues with incorrect text spacing
- Fixed issue where no new chats would load

0.5.1 -> 0.5.2
- Added support for inline video displays
- Improved attachment displays in conversations
Expand Down
2 changes: 1 addition & 1 deletion package/deb/DEBIAN/control
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Package: com.ianwelker.smserver
Depends: com.janshai.libsmserver | com.twickd.ian-welker.libsmserver
Name: SMServer
Version: 0.5.2
Version: 0.5.3
Architecture: iphoneos-arm
Description: Send texts from your browser!
Maintainer: Ian Welker <[email protected]>
Expand Down
Binary file not shown.
6 changes: 3 additions & 3 deletions src/SMServer/ChatDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ final class ChatDelegate {
var messages = [[String:String]]()

if is_group {
messages = selectFromSql(db: db, columns: ["m.ROWID", "m.guid", "m.text", "m.subject", "m.is_from_me", "m.date", "m.service", "m.cache_has_attachments", "m.handle_id", "m.balloon_bundle_id", "h.id"], table: "message m", condition: "left join handle h on h.ROWID = m.handle_id where m.ROWID in (select message_id from chat_message_join where chat_id in (select ROWID from chat where chat_identifier is \"\(num)\")) order by m.date desc", num_items: num_items, offset: offset, split_ids: true)
messages = selectFromSql(db: db, columns: ["m.ROWID", "m.guid", "m.text", "m.subject", "m.is_from_me", "m.date", "m.service", "m.cache_has_attachments", "m.handle_id", "m.balloon_bundle_id", "m.associated_message_guid", "m.associated_message_type", "h.id"], table: "message m", condition: "left join handle h on h.ROWID = m.handle_id where m.ROWID in (select message_id from chat_message_join where chat_id in (select ROWID from chat where chat_identifier is \"\(num)\")) order by m.date desc", num_items: num_items, offset: offset, split_ids: true)
} else {
messages = selectFromSql(db: db, columns: ["ROWID", "guid", "text", "subject", "is_from_me", "date", "date_read", "service", "cache_has_attachments", "handle_id", "balloon_bundle_id", "associated_message_guid", "associated_message_type"], table: "message", condition: "WHERE ROWID IN (SELECT message_id FROM chat_message_join WHERE chat_id IN (SELECT ROWID from chat WHERE chat_identifier is \"\(num)\") ORDER BY message_date DESC) ORDER BY date DESC", num_items: num_items, offset: offset)
}
Expand All @@ -233,7 +233,7 @@ final class ChatDelegate {
for l in 0..<a.count {
/// use ':' as separater between attachments 'cause you can't have a filename in iOS that contains it (I think?)
/// Also yes I now recognize that this is terrible and I should just make this an array instead of a string.
/// Yes I'll fix that some time but this seems to function ok right now and I'm apprehensive to change the API
/// I'll fix that some time but this seems to function ok right now and I'm apprehensive to change the API
file_string += a[l][0] + (l != a.count ? ":" : "")
type_string += a[l][1] + (l != a.count ? ":" : "")
}
Expand Down Expand Up @@ -527,7 +527,7 @@ final class ChatDelegate {
}
}

final func searchForString(term: String, case_sensitive: Bool = false, bridge_gaps: Bool = true, group_by_time: Bool = true) -> /*[String:[[String:String]]]*/ Any {
final func searchForString(term: String, case_sensitive: Bool = false, bridge_gaps: Bool = true, group_by_time: Bool = true) -> Any {
/// This gets all texts with $term in them; case_sensitive, bridge_gaps, and group_by_time are customization options

/// Create Connections
Expand Down
Loading

0 comments on commit 83a6645

Please sign in to comment.